我有一个页面在标题中调用脚本,如下所示:
<script type="text/javascript" src="http://www.discoverfire.net/analytics/l/a.js"></script>
(请注意,您将无法加载此脚本,因为它是本地 DNSd 作为暂存域)
很简单。
Firefox、IE、Chrome 都对这个基本的方形功能没有任何问题。
然而,Opera 拒绝加载脚本。其中的任何变量或函数都是“未定义的”,并且在 Dragonfly 中,脚本标签显示在 DOM 中,但“脚本”选项卡显示“未找到脚本文件”。
我去谷歌找到随机页面,他们的外部 .js 文件似乎工作得很好。
知道为什么 Opera 讨厌我吗? 我缺少安全/javascript的东西吗?
一些可能相关但实际上应该没有区别的事情:
- 该脚本与页面位于不同的域中。
- 该脚本仅在我的本地网络上可用。该域在本地进行 DNS 暂存,从网络外部指向其他地方。Opera 是否有秘密使用外部 DNS 服务器的设置?
- 该脚本适用于我拥有的所有其他浏览器。
- 问题不在于脚本内容。我已将其简化为带有警报的单行,但它根本无法在 Opera 中运行。
更新:
好的,问题似乎是 Opera 如何处理域。
我已将脚本移至其他几个域,它确实工作得很好。我已将其移至本地 DNS 域上的多个路径,但它无法在该域的任何地方工作。
这让我相信问题在于 Opera 出于某种原因不能或不会从该域加载脚本。
奇怪的是,从域中加载页面和其他资源似乎没有问题,问题仅在于 .js 文件。
域已注册,但已停放。我们在本地对它进行了 DNS 处理,因此我们可以将其用于暂存/测试,这可能会以某种方式与 Opera 和 JS 安全性混淆。
不过我可能是错的——我真的不知道。如果其他人有的话,我很想听听。
更新 2:
关于 Dragonfly 和错误控制台/开发人员工具,他们根本没有提及脚本。对于脚本中应该存在的变量和函数,有很多未定义的变量错误,但除此之外,没有错误。奇怪的是,脚本标签确实出现在 DOMM 中,但如果我单击“脚本”选项卡,它会显示“未找到脚本”。
更新 3:
没有被阻止的内容,因此我们至少可以排除该设置。