【发布时间】:2013-04-14 21:31:53
【问题描述】:
我的网页就这样结束了:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">var switchTo5x=false;</script>
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">
stLight.options({publisher: "ur-24e62f76-1f66-e3aa-1190-c533b729ca11", doNotHash: true, doNotCopy: true, hashAddressBar: false});
</script>
<script type="text/javascript" src="/static/bootstrap/js/bootstrap.js"></script>
</body>
</html>
在 FireFox 和 Safari 中,它的行为。在 Chrome 中:
Uncaught ReferenceError: stLight is not defined nectar-tugg-art:229
(anonymous function)
换言之,w.sharethis.com/button/buttons.js 中的代码未能执行,因此未能定义 stLight 变量。
该页面是在远程服务器上运行的 Django Web 应用程序的一部分。将生成的 HTML 页面保存在本地,然后在 Chrome 中查看,可以正常工作。
此时我被卡住了。与跨域安全模型有关吗?没有任何安全例外。
与其他 javascript 文件的一些奇怪的交互?
静态(生成)代码是here。但它不会从 Dropbox 运行。
【问题讨论】:
-
检查您的控制台,在此之前是否有任何错误
-
不,没有。更多信息:制作buttons.js的本地副本并引用它,工作正常 - 没有错误。
-
是否有可能在 sharethis.com 的脚本完成加载之前对调用
stLight的脚本进行评估? -
遇到问题了,您的远程 html 在 SSL 上运行,但脚本来自非安全站点
-
其实不是HTTPS。
标签: javascript django google-chrome cross-domain