0
Это мой код до сих пор, и основная проблема заключается в том, что скрипты иногда загружаются после загрузки главной страницы, запрашивается страница с AJAX и использует parseScript на выходе, есть ли способ сделать это функция приостанавливает и не возвращает ничего, пока все сценарии не будут загружены браузером?Загрузка Javascript
function addScriptTag(src) {
var node = document.getElementsByTagName("head")[0] || document.body;
if(node){
var script = document.createElement("script");
script.type="text/javascript";
script.src=src
node.appendChild(script);
} else {
document.write("<script src='"+src+"' type='text/javascript'></script>");
}
}
function parseScript(_source) {
var source = _source;
var scripts = source.match(/<script[^>]*src=[^>]*>/g);
if (scripts) {
for (var i = 0; i < scripts.length; i++) {
src = scripts[i].match(/src=("([^"]*)"|'([^']*)')/);
src = src[2] || src[3];
if (src) {
addScriptTag(src);
}
}
}
var scripts = new Array();
return source;
}
Вы могли бы попытаться приложить свой сценарий в конце своего html-документа? – SaidbakR
Это не вариант, единственная опция в настоящее время добавляет обратный вызов, который я не знаю в Javascript, у меня есть скрипт в моем заголовке, который динамически загружает страницы с помощью AJAX, используя настраиваемые URL-адреса для закладки, есть только 1 страница загружается за один раз, и я довольно часто использую myDiv = parseScript (AJAXFetchedCode) – user1841964
@ user1841964: Что вы не знакомы с обратными вызовами? Они должны быть достаточно простыми для вашей ситуации (их очень сложно использовать, если ваш код становится слишком большим) – hugomg