这是一段非常“标准”的JavaScript代码(我在成千上万的例子中看过它),但它对我不起作用:
<head>
<title>Temp</title>
<script type="text/javascript">
function start() {
var newScript = document.createElement('script');
newScript.type = "text/javascript";
newScript.src = "toBeIncluded.js"; // THIS ONE DOES NOT WORK
document.body.appendChild(newScript);
// alert(newScript.contentText);
}
</script>
</head>
<body onload='start()'>
</body>
</html>
实际上我没有收到任何错误,并且标签实际上已经被置换了 - 不幸的是它完全是空的(我用注释的警报线检查它)。请考虑“toBeIncluded.js”文件存在,不为空,并且位于此HTML的同一本地目录中(我在PC上本地运行所有内容)。
请帮助,我尝试了很多可能的变化(更改目录,包括完整路径,将代码移动到“正文”部分,...)但没有成功
答案 0 :(得分:0)
我建议为Firefox安装Firebug扩展程序。还有一个Firebug Lite脚本可供其他浏览器使用。它们以不同的方式工作,但具有相似的功能。正如其他人所提到的,您可以从查看HTTP事务信息中受益。在Firebug中,这可以在“Net”面板中找到。如果浏览器尝试加载脚本,那么您应该在“Net”面板中看到一个项目。 (确保在“网络”面板选项中选择了“全部”或“脚本”)。
如果您看到列出的脚本请求,则还应列出请求的结果。例如,如果它是“404 Not Found”,则URL无法正确解析。如果是“200 OK”或“304 Not Modified”,则请求成功。如果项目显示一个小的微调器图形,那么它仍然试图连接到目标服务器。
如果Net面板指示请求成功,则转到“HTML”面板。 HTML面板显示文档对象的当前状态,因此如果您的启动函数正确执行,那么您将看到“script”元素作为body元素的子元素。
如果成功添加了脚本元素但未发出HTTP请求,则可能是浏览器安全设置有问题。例如,如果请求越过HTTP / HTTPS或http /文件协议的边界,浏览器可能会默默地拒绝它。
尝试打开新的浏览器窗口并直接请求脚本网址。这应该有助于排除拼写错误的URL或服务器连接问题。