2010-05-21 2 views
8

У меня есть внешний файл javascript, который зависит от наличия другого файла.Авто включать javascript-файл, если он еще не включен

Как я могу, используя JavaScript (или JQuery) автоматически включать этот файл, если он еще не включен (я тест, основанный на присутствии известной функции в этом внешнем файле)

Edit: Теперь он включает в себя файл, но записывает все что угодно! Я попробовал все предложенные методы, выдвинутые до сих пор

ответ

12

Ну, если это JavaScript-файл определяет конкретную переменную (или функция), вы можете проверить его наличие, проверив typeof that_variable, а затем загрузить файл JavaScript в случае необходимости , Пример, вот как вы загрузите SWFObject библиотеку, если ее нет на странице:

if (typeof swfobject == "undefined") { 
    var e = document.createElement("script"); 
    e.src = "http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js"; 
    e.type = "text/javascript"; 
    document.getElementsByTagName("head")[0].appendChild(e); 
} 
+0

Просто примечание ... Я попробовал это в документе готовой функции JQuery, а затем пытался вызвать функцию в моем файле, и это было все еще не определено. Закончилось это по-другому. –

+0

@RegionalC: вы должны вызвать эту функцию _after_ загружается динамически загруженный скрипт. В [большинстве браузеров] (http://pieisgood.org/test/script-link-events/) вы можете назначить событие onload динамически сгенерированным элементам сценария ('e.onload = function() {}'). Вы можете вызывать свою функцию из этого обработчика событий. На (глупым) IE 6/7/8 вы можете использовать событие onreadystatechange. –