Javascript 不会在 IE11 中加载,除非兼容模式已打开或关闭
Javascript is not loaded in IE11 unless compatibility modes is turned on or off
情况
我维护一个使用 Javascript 将图片列表包装到滑块中的网页。
客户报告滑块无法在 IE11 (11.0.9600) 上加载,除非进入兼容模式。 (似乎负责的 Javascript 没有加载或执行。)
分析
我根本无法在虚拟机上重现此问题。
但是在与客户的 TeamViewer 会话期间,我能够看到以下行为:
- 打开带有图片的子页面
=> 滑块未初始化
- 以兼容模式将当前域添加到站点列表
=> 页面重新加载并且 滑块已初始化
很奇怪,但还有更多:
- 正在加载带有图像的另一个子页面(同一域)
=> 滑块未初始化(再次)
- 将当前域删除到兼容模式的站点列表
=> 页面重新加载并且 滑块已初始化
所以不是兼容模式本身导致或修复错误,而是打开或关闭。
问题
客户要求在服务器端修复该错误。但我不知道那里会发生什么。而且由于我无法在本地重新创建错误,因此更难调试。
此外,我不确定我是否可以在服务器端做任何事情。
有人知道会发生什么吗?
好的,我发现了问题:
在 Javascript 中调用了 new URL(...)
,IE 不支持。这基本上停止了脚本的执行,包括滑块的初始化。
为什么我无法在本地重现问题:
上面的调用只在特定情况下执行,比如特定的浏览路径。真是一塌糊涂。
情况
我维护一个使用 Javascript 将图片列表包装到滑块中的网页。
客户报告滑块无法在 IE11 (11.0.9600) 上加载,除非进入兼容模式。 (似乎负责的 Javascript 没有加载或执行。)
分析
我根本无法在虚拟机上重现此问题。 但是在与客户的 TeamViewer 会话期间,我能够看到以下行为:
- 打开带有图片的子页面
=> 滑块未初始化 - 以兼容模式将当前域添加到站点列表
=> 页面重新加载并且 滑块已初始化
很奇怪,但还有更多:
- 正在加载带有图像的另一个子页面(同一域)
=> 滑块未初始化(再次) - 将当前域删除到兼容模式的站点列表
=> 页面重新加载并且 滑块已初始化
所以不是兼容模式本身导致或修复错误,而是打开或关闭。
问题
客户要求在服务器端修复该错误。但我不知道那里会发生什么。而且由于我无法在本地重新创建错误,因此更难调试。
此外,我不确定我是否可以在服务器端做任何事情。
有人知道会发生什么吗?
好的,我发现了问题:
在 Javascript 中调用了 new URL(...)
,IE 不支持。这基本上停止了脚本的执行,包括滑块的初始化。
为什么我无法在本地重现问题:
上面的调用只在特定情况下执行,比如特定的浏览路径。真是一塌糊涂。