0

我在主机 a 中有一个名为“a.js”的 javascript 文件。a.js 中的代码如下:

function sayHello() {
    alert("Hello, world");
}

我在主机 b 中有一个名为 html 的文件b.html,其中有如下代码:

<html>
  <head>
    <script type="text/javascript" src="http://a/js/a.js" />
    <script type="text/javascript">
      sayHello();
    </script>
  </head>
  <body>
  </body>
</html>

当我在浏览器中输入 url“http://b/b.html”(我在 IE8、Chrome 中测试过)时,我的浏览器不会弹出警报窗口。我错过了什么配置吗?

我应该怎么做才能使我的 b.html 可以包含位于另一台主机中的 javascript 文件,并且可以像包含 Google 的 javascript API 文件一样执行 javascript 文件中的函数?

感谢您的帮助。

4

2 回答 2

3

包含来自不同域的 javascript 没有安全限制(与必须驻留在一个域中的 ajax 调用不同),因此您一定是输入错误或文件不可用。确保您可以直接在浏览器中查看 js 本身,只需直接转到 url,然后将其复制并粘贴到您的 src 标签中。它会工作(如果它正在工作的javascript!):)

于 2013-01-21T00:56:40.667 回答
3

您遇到此问题是因为<script>标签不是自动关闭的(除非您使用 XML 内容类型提供文件)。正如 Dr.Dredel 所说,在这种情况下,它与任何类型的安全限制无关。将您的标记更改为:

<script type="text/javascript" src="http://a/js/a.js"></script>

进一步参考:为什么自闭合脚本标签不起作用?

于 2013-01-21T01:01:07.293 回答