В любом случае, чтобы загрузить внешний скрипт один раз для события на веб-странице AJAX? - PullRequest
0 голосов
/ 09 апреля 2011

У меня очень простая страница, но все ссылки загружены с помощью ajax, что мне интересно, есть ли в любом случае загрузка внешнего скрипта после нажатия на одну из ссылок, но убедитесь, что скрипт загружен только один раз? В основном только ради производительности.

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Вам полезен этот код?

var s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'script.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
1 голос
/ 09 апреля 2011

Я использовал этот код раньше, и он работал:

var t=document;
var o=t.createElement('script');
o=t.standardCreateElement('script');
o.setAttribute('type','text/javascript');
o.setAttribute('src','http://www.example.com/js/jquery-1.3.2.js');
t.lastChild.firstChild.appendChild(o);
1 голос
/ 09 апреля 2011

Вы можете загрузить внешний скрипт, создав элемент script и добавив его к head:

var script=$("<script>");
script.attr("type", "text/javascript");
script.attr("src", "some_external_script.js");
script.appendTo("head");

Вы можете использовать простую переменную, чтобы убедиться, что он включен только один раз.

var addedExternalScript=false;
// ...somewhere else where loadedExternalScript is still in scope...
if(!addedExternalScript) {
    // load the script
}
// script is in the document

Обратите внимание, что наличие элемента script в документе не обязательно означает, что он загружен.Вам может потребоваться привязаться к событию load, если вы хотите знать, когда скрипт загрузился.

...