Выполнение внешнего JS, добавленного с помощью .innerHTML

Рейтинг: 1Ответов: 1Опубликовано: 24.11.2014
var banner='<script src="http://domen.zona/path/script.js"><\/script>';
document.getElementById("ad").innerHTML = banner;

Код в диве с ID="ad" появляется, но содержимое файла не выполняется (даже сам файл не загружается).

Дополнительные библиотеки типа JQuery не используются.

В переменной "banner" содержится код баннеров, он может быть разный (картинки в виде HTML, скрипты прямо в коде, внешние скрипты и комбинации всего этого), парсить и создавать элементы будет сложно. Проблема осталась только со внешними файлами. Внутренний JavaScript выполняется так:

var scripts = document.getElementById("ad").getElementsByTagName("script");
var script;
for (var i = 0; script = scripts[i]; i++)
{
   eval(script.innerHTML); 
}

Что можно придумать, чтобы содержимое script.js выполнилось?

Ответы

▲ 1
Используй вот эту функцию:
function include(file) //ссылка на файл
{
    var a = document.createElement("script");
    a.src = file;
    document.body.appendChild(a);
    a.onload = function() 
    {
        alert("Файл : '" +file+"' успешно подключен");
    }
};