[英]Opera: .js file won't load
我有一个页面在标题中调用脚本,如下所示:
<script type="text/javascript" src="http://www.discoverfire.net/analytics/l/a.js"></script>
(请注意,您将无法加载此脚本,因为它是本地DNSd作为暂存域)
很简单。
Firefox,IE,Chrome对此基本的平方一功能都没有问题。
但是,Opera拒绝加载脚本。 其中的任何变量或函数都是“未定义的”,在蜻蜓中,脚本标记显示在DOM中,但是“脚本”选项卡显示“未找到脚本文件”。
我去谷歌,找到随机的页面,他们的外部.js文件似乎工作得很好。
知道为什么Opera讨厌我吗? 我缺少安全性/ JavaScript吗?
一些可能相关的事情,但实际上应该没有任何区别:
更新:
好的,问题似乎在于Opera如何处理域名。
我已将脚本移至其他几个域,并且确实可以正常工作。 我已将其移至本地DNS域名上的多个路径,并且该域名上的任何地方都无法使用。
这使我相信问题是Opera由于某种原因无法或不会从该域加载脚本。
奇怪的是,从域中加载页面和其他资源似乎没有问题,问题仅在于.js文件。
该域已注册,但已寄存。 我们在本地对其进行DNS编码,因此我们可以将其用于登台/测试,并且这可能与Opera在某种程度上与JS安全有关。
我可能是错的-我真的不知道。 如果其他人有一个,我很想听听。
更新2:
关于Dragonfly和错误控制台/开发人员工具,他们根本没有提及脚本。 脚本中应该存在大量的变量和函数未定义变量错误,但除此之外,没有错误。 奇怪的是,脚本标签确实显示在DOMM中,但是如果我单击“脚本”选项卡,它会显示“未找到脚本”。
更新3:
没有被阻止的内容,因此我们至少可以排除该设置。
您可能想查看其广告拦截器是否挡住了路。 您的URL包含“分析”文本,该文本可能是“阻止此”模式的一部分。 我知道有些人通过Opera阻止了Google分析。 一个简单的测试可能是尝试将.js移到主机上的其他路径。
您是否检查过Opera的错误控制台? 工具>高级>错误控制台它应提供有关为何无法加载或是否存在其他某种错误的信息。
像Jacob所建议的那样,您应该检查它是否被阻止。 去做这个:
您应该在Opera论坛中提问。 过去我在Opera上遇到过一些问题,他们很快就回答了。
主机是否为JavaScript文件提供了正确的mime类型。 这不是一个众所周知的事实,但是浏览器实际上会忽略type=text/javascript
属性,因为它相信服务器正在指定正确的类型。
另外,当涉及到JavaScript时, text/javascript
的mime类型实际上是错误的,实际的JavaScript mime类型是application/ecmascript
(如果我application/ecmascript
话,它可能是application/javascript
)。 如果您不相信我,可以在这里查看更多信息,并链接到道格拉斯·克罗克福德(Douglas Crockfords)的视频,他在视频中讨论了哑剧类型。
我最近有类似的事情-Opera不会在外部服务器上运行脚本...也不会下载并在本地主机上运行它。 仅在脚本标记之间复制/粘贴到html页面中时才运行。
事实证明,脚本是用UTF-16编码的,这在某种程度上使浏览器感到困惑。 当我将其转换为UTF-8时,一切运行正常。
因此,以防万一,如果仍然有问题,请检查编码设置...
我遇到了完全相同的问题,试图将脚本从本地主机/开发服务器加载到页面中,但无济于事,该页面托管在公共服务器上。 我管理脚本在Opera中加载的唯一方法是将页面的副本保存到同一开发服务器上的某个位置,并使用标记引用原始域来获取页面的.css和.js链接文件。 那行得通。 看起来Opera不想混合使用公共域和本地主机域,但是可以处理本地主机而不会抱怨。
您所看到的可能是Opera针对所谓的“网络钓鱼骗局”攻击的安全预防措施:跨网络保护。 您不能混合来自公共服务器的内容和来自本地服务器的内容。
请在这里查看我的答案以找到解决方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.