【问题标题】:jQuery 2.x issue on addEventListener while using Microsoft Web Browser OCX control使用 Microsoft Web 浏览器 OCX 控件时 addEventListener 的 jQuery 2.x 问题
【发布时间】:2016-07-06 10:28:54
【问题描述】:

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

行:3573 [document.addEventListener("DOMContentLoaded", completed );],
字符:4,
错误:对象不支持属性或方法“addEventListener”
代码:0,
网址:文件路径/jquery-2.2.4.js。

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

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

【问题讨论】:

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


    【解决方案1】:

    FEATURE_BROWSER_EMULATION 确实改变了 userAgent。但是我在我的旧网页上发现了这样的文档类型规范:
    <!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">

    这也很有帮助:doctype overview

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-11
        • 1970-01-01
        • 2011-04-13
        • 2020-11-01
        • 1970-01-01
        相关资源
        最近更新 更多