Вы можете сделать это:
<!--
Я пытаюсь загрузить другой JS-файл из JS-файла.
Из моего JavaScript файла документа . write ( "<script type = 'text / javascript' src = 'my_script.js'> </ script>" ); alert ( nImages ); , У меня есть следующее:
<SCRIPT language="JavaScript" type="text/javascript">
<!--
nImages = 6;
//-->
</SCRIPT>
В стороне nImages у меня есть следующее:
var script = document.createElement('script');
script.src = 'my_script.js';
script.type = 'text/javascript';
script.onload = function () {
alert(nImages);
};
document.getElementsByTagName('head')[0].appendChild(script);
Но я не могу показаться , чтобы получить его , чтобы предупредить от = языка «JavaScript» файл.nImages = 6;
Вы не должны использовать HTML внутри вашего файла сценария. Ваш файл сценария // -> должен содержать только это.
document.write()
Дополнительное примечание: вам не нужно или или . Это старые соглашения, которые не нужны для современных браузеров (даже IE6). Я бы также избегал использования в вашем JS, так как он имел последствия для производительности. Возможно, вам захочется взглянуть на библиотеку, такую ??как RequireJS, которая обеспечивает лучший способ загрузить другие JS-файлы на странице.var theOtherScript = 'http://example.com/js/script.js'; var el = document.createElement('script'); el.async = false; el.src = theOtherScript; el.type = 'text/javascript'; (document.getElementsByTagName('HEAD')[0]||document.body).appendChild(el);
so my_script.js
nImages = 6;
run.js
У меня также есть фрагмент кода на Github, вдохновленный Стивом Соудерсом, который загружает другой файл через прямой JS.
my_script.js
Это добавит другой скрипт к элементу (если он существует) или к странице.
Файлы Javascript не должны содержать HTML. Они должны состоять полностью из кода Javascript, nImages
должны содержать только:
document.write("<script type='text/javascript' src='my_script.js'></script>");
function call_on_load(){
alert(nImages);
}
Это все равно не будет работать, потому что, когда вы пишете новый тег сценария в документе, он не запускается немедленно. Гарантируется, что он run.js
заканчивается перед запуском my_script.js
, поэтому my_script.js
он не определен, когда вы его предупреждаете, а затем становится 6 позже. Вы увидите, что это работает:
nImages = 6;
call_on_load();
Если содержание my_script.js
:
my_script.js
редактировать
Поскольку вы сказали в комментарии, что вы не можете редактировать, my_script.js
вы можете это сделать, хотя это не так приятно, как решение:
// Force nImages to be undefined
var undefined;
window.nImages = undefined;
document.write("<script type='text/javascript' src='my_script.js'></script>");
(function is_loaded(cb){
if(typeof window.nImages == 'undefined')
setTimeout(function(){ is_loaded(cb); }, 100);
else
cb();
})(function(){
// This is executed after the script has loaded
alert(nImages);
});
Однако это не очень хорошее решение, так как он будет продолжать опрос неограниченно, если при загрузке скрипта произошла ошибка.
РЕДАКТИРОВАТЬ
Вы отправили в комментарий файл, который хотите включить, который находится <SCRIPT
сверху. Этот файл бесполезен, и вы не можете ничего сделать с ним на стороне клиента. Вам нужно будет написать сценарий на стороне сервера, чтобы загрузить файл в виде текста, и в этом случае вы можете просто проанализировать его для нужного значения.