Показать сообщение отдельно
  #3 (permalink)  
Старый 14.02.2014, 03:55
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 21.09.2009
Сообщений: 26

Спасибо за ответ.

Я пошел немного дальше и в скрипте своем учитывал не только JS-контейнеры с кодом, но и инклуды:

divObj = document.getElementById('test');
divObj.innerHTML = "ТУТ КОД";
var scripts = divObj.getElementsByTagName("script");
var script;
for(var i = 0; script = scripts[i]; i++)
{
  // Если инклуд JS-скрипта
  if(script.src !== undefined && script.src != '')
  {
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.src = script.src;
    script.parentNode.insertBefore(newScript, script);
    script.parentNode.removeChild(script);
  }
  // Если просто контейнер с JS-кодом
  else
    eval(script.innerHTML);
}


Все работает отлично. НО, если в инклуде встречается document.write() то FF ругается: Вызов document.write() из асинхронно-загруженного внешнего сценария был проигнорирован.

Можно ли как-то избавиться от этой ошибки и игнора вызова document.write() ?

ADD: Появилась мысль, а что если, при инклуде, через AJAX получать код скрипта и его запускать функцией eval? Это поможет?

Последний раз редактировалось mcfly, 14.02.2014 в 03:59.
Ответить с цитированием