我的网页因此结束:
<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运行。
答案 0 :(得分:22)
好的,我想我可能已找到它:该网站在Chrome的隐身(色情)模式下正常运行。所以我强烈怀疑我有一些干扰它的扩展(比如Do Not Track或其他东西)。
EDIT 它是Collusion的“阻止已知跟踪网站”功能。
答案 1 :(得分:8)
就我而言,我发现它是一个名为“Disconnect”的Chrome插件。感谢@SteveBennet的线索。
答案 2 :(得分:4)
在我的情况下,我更换了
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
这是通过
<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
答案 3 :(得分:2)
在Magento中没有定义stLight:
这可以通过以下方式解决:
<script type="text/javascript">
window.onload = function(){ stLight.options({publisher: "ur-24e62f76-1f66-e3aa-1190-c533b729ca11", doNotHash: true, doNotCopy: true, hashAddressBar: false});}
</script>
问题(我认为)是在存在此函数的脚本之后加载的js文件http://w.sharethis.com/button/buttons.js
。在我看来,最简单的解决方案是window.onload,可能还有其他很好的解决方案。
答案 4 :(得分:0)
除了其他答案中列出的扩展程序外,这可能是由Ghostery扩展程序引起的。
答案 5 :(得分:0)
如果您在自己的网站上启用了SSL,则可能需要尝试重新编写ShareThis脚本:
<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">
stLight.options({
publisher:'12345',
});
</script>