Javascript文件中不应该有HTML。他们应该完全的Javascript代码组成,so my_script.js
应该只包含:
nImages = 6;
这仍然是行不通的,因为当你写了新的脚本到文档中它不会立即运行。确保run.js
在my_script.js
开始之前完成运行,因此nImages
在警报时未定义,然后在稍后变为6时。你会看到,这个作品:
document.write("<script type='text/javascript' src='my_script.js'></script>");
function call_on_load(){
alert(nImages);
}
如果my_script.js
内容是:
nImages = 6;
call_on_load();
编辑
既然你在一个评论说,你不能编辑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
顶部要包含的文件。这个文件是无用的,你无法对它做任何关于客户端的事情。您必须编写一个服务器端脚本来将文件加载为文本,在这种情况下,您可以将其解析为所需的值。
难道你需要等待,直到JS文件实际加载(除了“它不是一个HTML文件”部分)? –