getElementsByTagName("script")
Этот код прекрасно работает во всех браузерах, кроме ... .
function ajaxLoad(url, target) { ajaxGet(url, function(content) { var container = document.getElementById(target); container.innerHTML = content; var scripts = container.getElementsByTagName("script"); // IE < 9 не работает for (var i = 0; i < scripts.length; ++i) { eval(scripts[i].innerHTML); } }); } Ишак возвращает Object HTMLCollection с length = 0. Может кто подскажет как исправить? И ещё вопрос пробовал с помощью регулярок получить всё что внутри тегов script вот рабочая регулярка(она должна работать, потому как правильная) /<script[^>]*>(.*)<\/script>/gi, что мне непонятно в js есть re.exec(str), но данный метод возвращает только первое вхождение, в цикле тоже не получается, покажите рабочий пример |
bugmenot,
подная тема |
там нет ответа на мой вопрос, с регуляркой помочь можешь?
|
Это я так пробовал с помощью регулярок выцепить скрипты, но не работает
// ... var str = content; // alert(str); while (1) { alert(str); var tmp = /<script[^>]*>(.*)<\/script>/gi.exec(str); alert(tmp); if (!tmp) { break; } str = str.replace(tmp[0], ""); } Объясните кто-нибудь в этом ***баном js как оно делается! |
<html> <head> <script>//скрипт</script> <script>//скрипт</script> <script>// ещё скрипт))</script> <script>// и ещё скрипт</script> <script>alert(document.getElementsByTagName("script").length);//узнаем, сколько их))</script> </head> </html> Это у вас мозги не работают, по-видимому. Во-первых, в моём восьмом эксплорере всё прекрасно работает, во-вторых, вы второго августа тоже на улице "ВДВ - гавно!" кричите? Нет? А почему здесь плохо про js говорите? Вы какбэ обижаете людей, которые на нём пишут. |
Цитата:
|
Да я тоже не плачу от этого :) Просто это глупо - просить помощи, и при этом оскорблять людей, пусть даже косвенно, у которых помощи просишь.
|
function makeArray( obj, undefined ) { if ( !obj ) return []; var out = [], i = 0, j = 0; if ( typeof obj.length === "number" ) { for ( var l = obj.length; j < l; j++ ) { out[ i++ ] = obj[ j ]; } } else { while ( obj[ j ] !== undefined ) { out[ i++ ] = obj[ j++ ]; } } out.length = i; return out; } function ajaxLoad(url, target) { ajaxGet(url, function(content) { var container = document.getElementById(target); container.innerHTML = content; var scripts = makeArray( container.getElementsByTagName("script") ); for (var i = 0; i < scripts.length; ++i) { eval(scripts[i].innerHTML); } }); } |
Цитата:
str = str.replace(tmp[ 1 ], ""); |
оно у меня не в хиде лежит, аяксом берется контент страницы, контент вставляется в див, а у дива выбираются элементы по тегу
|
Часовой пояс GMT +3, время: 09:12. |