下面这段代码可以在IE6 & IE7和几乎所有版本的FF中运行。这在IE8中是行不通的。一旦我将脚本标记添加到HTML->HEAD元素中,我就看不到该脚本被加载到浏览器中(脚本中的警报不会显示)。我看到标签已经被插入到HTML-HEAD中了。
var head = document getElementsByTagName('head')[0];
// Check if the script is already loaded.
if (head ){
var script = document.createElement('script');
script.type = 'text/javascript';
script.language = 'JavaScript';
script.src = '/Tolven/scripts/' + jsFileName;
head.appendChild(script);
}有没有人有这个问题?有什么线索可以解决这个问题吗?
发布于 2010-11-26 00:51:25
如果此脚本在<head>标记中,则在解析和执行此脚本时,head不存在。所以,当然if (head)是false。
您正在使用JS框架--所以请随意使用它的工具。在使用你的框架之前,也别忘了把它包括进来。
<!-- if your are using mootools -->
<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
// Your code...
});
</script>
<!-- if your are using prototype -->
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
document.observe("dom:loaded", function() {
// Your code...
});
</script>发布于 2010-11-26 02:49:53
考虑使用像RequireJS或LABjs这样的库,它们可以很好地在运行时包含脚本。
发布于 2010-11-26 02:40:55
var head = document getElementsByTagName('head')[0];应该是
var head = document.getElementsByTagName('head')[0];在此修改后,脚本似乎可以工作。
https://stackoverflow.com/questions/4279018
复制相似问题