прошу прощения. таки не работает алерт. ето я уже запутался. просто с утра не могу решить проблему.
с евалом функция выглядела так:
//str - ответ сервера
function renewScripts(str) {
var scriptStr = '';
var re = new RegExp('<script type=.?text/javascript.?');
while (re.test(str)) {
scriptStr = str.slice(str.search(re), str.indexOf('</script>') + 9);
str = str.replace(scriptStr, '');
var re2 = new RegExp('<script type=.?text/javascript.?>');
if (re2.test(scriptStr)) {
scriptStr = scriptStr.replace(re2, '').replace('</script>', '');
eval(scriptStr);
}else{
re2 = new RegExp('[\'"]>');
scriptStr = scriptStr.slice(scriptStr.indexOf('src=') + 5, scriptStr.indexOf('>'));
var scr = document.createElement('script');
scr.type = 'text/javascript';
scr.src = scriptStr;
document.body.appendChild(scr);
}
}
тут я создавал елемент скрипт только для тех скриптов, что подключались файлом. а остальное через евал. у меня появились сомнения, что евал в данном случае не будет работать, потому что тогда функции будут обьявлятся внутри функции renewScripts, верно?
Сообщение от Gvozd
|
надо с помощью создания внутри текстовой ноды
|
не очень дружу с DOM(
можно немного поподробнее про текстовые ноды?