0

这是一段非常“标准”的 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 上本地运行所有内容)。

请帮忙,我尝试了很多可能的变化(更改目录,包括完整路径,将代码移动到“正文”部分,......)但没有成功

4

1 回答 1

0

我建议为 Firefox 安装Firebug扩展。还有一个用于其他浏览器的Firebug Lite脚本。它们以不同的方式工作,但具有相似的功能。正如其他人所提到的,您可能会从查看 HTTP 事务信息中受益。在 Firebug 中,这在“网络”面板中可用。如果浏览器尝试加载脚本,那么您应该会在“网络”面板中看到一个项目。(确保您在“网络”面板选项中选择了“全部”或“脚本”)。

如果您看到列出的脚本请求,则还应列出请求的结果。例如,如果它是“404 Not Found”,那么 URL 没有正确解析。如果是“200 OK”或“304 Not Modified”,则请求成功。如果该项目显示一个小的微调器图形,则它仍在尝试连接到目标服务器。

如果 Net 面板指示请求成功,则转到“HTML”面​​板。HTML 面板向您显示文档对象的当前状态,因此如果您的启动函数正确执行,那么您将看到一个“脚本”元素作为 body 元素的子元素。

如果成功添加了脚本元素,但没有发出 HTTP 请求,则可能是浏览器安全设置有问题。例如,如果请求跨越了 HTTP/HTTPS 或 http/file 协议的边界,浏览器可能会默默地拒绝它。

尝试打开一个新的浏览器窗口并直接请求脚本 URL。这应该有助于排除拼写错误的 URL 或服务器连接问题。

于 2011-03-06T20:57:35.083 回答