Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   getElementsByTagName("script") (https://javascript.ru/forum/css-html-internet-explorer/19472-getelementsbytagname-script.html)

bugmenot 06.08.2011 15:51

в тмп 1 лежит найденная строка

bugmenot 06.08.2011 16:00

> devote
нет, не работает, но всё равно спасибо
> trikadin
сам ты ебанный ублюдок, нервы лечи еблан

devote 06.08.2011 16:02

Цитата:

Сообщение от bugmenot
оно у меня не в хиде лежит, аяксом берется контент страницы, контент вставляется в див, а у дива выбираются элементы по тегу

Не совсем понял что ты имеешь ввиду? Вроде как тебе нужно было выбрать все теги SCRIPT вот я тебе и организовал пример. Или что-то не так?

devote 06.08.2011 16:02

Цитата:

Сообщение от bugmenot
> devote
нет, не работает, но всё равно спасибо

Что именно не работает?

bugmenot 07.08.2011 12:21

Вот простой пример
 
Цитата:

Сообщение от devote (Сообщение 118187)
Что именно не работает?

<div id="test">
</div>
<script type="text/javascript">
    var data = "<scr" + "ipt type=\"text/javascript\">alert(\"It's works.\");</scr" + "ipt><h1>It's works.</h1>";
    var container = document.getElementById("test");
    container.innerHTML = data;
    alert(container.getElementsByTagName("script")[0].innerHTML);
</script>


В Опере работает в ишаке object is null or not an object

bugmenot 07.08.2011 12:24

что в container.getElementsByTagName("script")[i].innerHTML должно eval'иться, так вот как писал выше не работает только в ишаке

bugmenot 07.08.2011 17:10

Кому интересно в этом петушином языке это делается так:

function ajaxLoad(url, target) {
    ajaxGet(url, function(data) {
        // здесь в элемент с id = target помещаем контент, получаемый аяксом
        // код между тегами script выполнен не будет
        document.getElementById(target).innerHTML = data;
        // поэтому мы его выполняем с помощью ф-ии eval
        eval(getJsCode(data));
    });
}

function getJsCode(data) {
    data = data.split(/<\/script>/gi);
    var i = 0, tmp = [];
    while (i < data.length) {
        var x = data[i++].split(/<script[^>]*>/gi);
        if (x[1]) {
            tmp.push(x[1]);
        }
    }
    return tmp.join();
}

bugmenot 07.08.2011 17:41

Мне вот только интересно, а как ещё это можно было сделать и как всё таки в js реализуется ф-ия аналогичная php-ной preg_match_all


Часовой пояс GMT +3, время: 17:57.