2016-07-06 99 views
2

我在Progress ABL容器上使用IE OCX,並通過在Windows註冊表(在FEATURE_BROWSER_EMULATION上)添加新的DWORD條目來強制模擬IE10。網絡文件我想在這個嵌入式瀏覽器中打開包含的jQuery 2.2.4版和我收到腳本錯誤:在使用Microsoft Web瀏覽器OCX控件時addEventListener出現jQuery 2.x問題

Line: 3573 [document.addEventListener("DOMContentLoaded", completed);],
Char: 4,
Error: Object doesn't support property or method 'addEventListener'
Code: 0,
URL: filepath/jquery-2.2.4.js.

同樣的錯誤,即使我強迫IE11的仿真和使用jQuery 2.X仍然存在。但如果我使用jQuery 1.12.4,則不會出錯。仿真版本是正確的。這是微軟網絡瀏覽器ocx的問題嗎?我的機器上裝有IE11。

任何幫助,將不勝感激!謝謝!!

回答

0

您將需要使用jQuery的1.x分支,因爲2.x分支刪除了許多與舊版瀏覽器和IE兼容所需的遺留代碼(這是OCX控件將使用的)

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">

這也相當有幫助:doctype overview