使用Microsoft Web Browser OCX控件时,addEventListener上的jQuery 2.x问题

时间:2016-07-06 10:28:55

标签: jquery internet-explorer emulation ocx ieframe.dll

我在Progress ABL容器上使用IE OCX,并通过在Windows注册表上添加新的DWORD条目(在FEATURE_BROWSER_EMULATION上)强制模拟IE10。我想在这个嵌入式浏览器上打开的Web文件包含jQuery 2.2.4版本,我收到脚本错误:

  

行:3573 [document.addEventListener(" DOMContentLoaded",已完成);],
  Char:4,
  错误:对象不支持属性或方法' addEventListener'
  代码:0,
  URL:filepath / jquery-2.2.4.js。

即使我强制模拟IE11并使用jQuery 2.x,同样的错误仍然存​​在。但是如果我使用jQuery 1.12.4则没有错误。仿真版本是正确的。这是微软网络浏览器ocx的问题吗?我的机器上有IE11。

任何帮助将不胜感激!谢谢!!

2 个答案:

答案 0 :(得分:2)

FEATURE_BROWSER_EMULATION确实会更改userAgent。但我在我的旧网页上发现了doctype规范,如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">强迫浏览器以怪异模式呈现页面,因此发生了jquery错误。所以我找到了3种方法来解决这个问题(以确保标准模式):

  1. 使用<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. 使用“<!DOCTYPE html>”并遵循新网页的html5标准
  3. 指定元标记:<meta http-equiv="X-UA-Compatible" content="IE=Edge">
  4. 这也非常有用:doctype overview

答案 1 :(得分:0)

您将需要使用jQuery的1.x分支,因为2.x分支删除了许多遗留代码,这些代码是与旧浏览器和IE(这是OCX控件将使用的)兼容所必需的< / p>