3

这个问题可能属于超级用户,但无论如何我都会尝试在这里问它,因为我相信,一些 Web 开发人员可能会遇到这种奇怪的行为。


在 VirtualBox 上测试网站的 IE8/winXP 兼容性时,我遇到了一个奇怪的问题$ is undefined,这是由于不包含 jQuery(和 jQuery UI)引起的,当被解析为file:///url 的相对路径引用时。似乎是因为它们的大小太大(超过 200KB)。

只需将这两个大文件的链接替换为那些链接就可以http://解决我的问题。

但这里有一个问题:为什么会发生这种情况?

是配置错误吗?一个错误?一个已知的设计决策?


细节:

  • 虚拟盒子 4.1.8
  • 主机操作系统:win7 64 位,客户操作系统:xp sp3 32 位
  • 已安装来宾添加,页面从 VB 共享文件夹启动
  • 该错误在所有浏览器中都表现出来(即使在歌剧中,它忽略了即安全设置,afaik)
  • ie配置是默认的
  • 脚本是这样包含的<script type="text/javascript" src="js/libs/jquery/jquery-1.7.2.js">
  • 未扣除确切的尺寸限制。
4

1 回答 1

1

第一个问题:IE 在加载这个 HTML 文件时使用什么区域?查看 IE 窗口的右下角是否有“我的电脑”或“本地 Intranet”之类的内容。尽管这个问题出现在其他浏览器中,但我很想知道 IE 将您的共享文件夹视为什么。

这听起来更像是浏览器问题,而不是 VirtualBox 在做一些有趣的事情。如今,IE 对 file:// URI 的限制非常严格,其他浏览器在不同程度上也是如此……

其他 .js 文件在相关页面中加载是否正常,或者它们是否也被阻止?更小得多的旧版本的 jQuery(如 v1.3.2)呢?

您是否出于某种原因从文件共享而不是从 Web 服务器加载它们?如果将所有文件从共享驱动器复制到来宾 c:\ 驱动器,是否会得到相同的结果?

升级到 VirtualBox 4.1.12 怎么样?我怀疑它会有所作为,但它可能值得一试。

最后一个想法是 jQuery 有一些调用可能会触发 IE(可能还有其他)阻止脚本 - 特别是调用new ActiveXObject. 也许创建一个小的 .js 文件来尝试将其作为问题解决。沿着同样的思路——如果你创建一个垃圾,虽然合法的 .js 文件很大——比如 400K,会发生什么:

var a = "... really, really long string";
var b = "... another really long string";
...
于 2012-04-13T23:24:30.773 回答