2013-07-05 54 views
0

我正在使用名爲「deps.js」的外部庫。我在github上分叉它並稍微修改它。你可以在這裏找到它:SCRIPT16386 jquery.contains in ie9 with quirks模式

https://github.com/ckosmowski/jquery-interdependencies/blob/master/deps.js

可惜我陷進去IE9的怪癖模式。我發現了以下錯誤:

SCRIPT16386 Schnittstelle nichtunterstützt

(可以翻譯爲 「接口不支持」)

的錯誤信息指的:

jQuery的1.7 .js,行5244字符3這是:

if (document.documentElement.contains) { 
Sizzle.contains = function(a, b) { 
    return a !== b && (a.contains ? a.contains(b) : true); //This is the line from the error message 
}; 

在標準模式下,這不會出現。

  • 什麼原因導致此問題?
  • 如何找出導致此問題的原因?
+0

如果你真的被卡在怪癖模式,那麼你有可能無法解決這個問題。 Quirks模式是一種IE5兼容模式,故意從瀏覽器中刪除大量功能以嘗試與IE5兼容。你真的*現在不應該使用怪癖模式,坦率地說,你不應該被困在它上面 - 將網站轉換爲標準模式通常並不困難。 (查找'box-sizing:border-box';它將解決大部分轉換問題) – Spudley

+0

謝謝。 Imho「你將無法解決這個問題」是一個有效的答案,尤其是對於你提供的額外信息,所以請將你的評論轉換爲答案 – Chris

+0

沒問題,完成了。 :) – Spudley

回答

0

我不認爲這解決了主要問題,但問題中提到的症狀似乎用較新的jQuery版本。我只是將jQuery版本從1.7更改爲1.10.2,現在它在怪癖模式下完美工作。

1

轉貼作爲一個答案評論,由OP建議...

如果你真的是停留在怪癖模式,那麼機會是你不會是能夠解決這個問題。 Quirks模式是一種IE5兼容模式,故意從瀏覽器中刪除大量功能以嘗試與IE5兼容。

這些天你真的不應該使用怪癖模式,坦率地說,你不應該被卡在它上面 - 將網站轉換到標準模式通常並不困難。 (查找框大小:邊框;它將解決大部分轉換問題)

+0

總的來說,你是對的,但是在某些情況下,你無法改變環境,即在一個超過12年的產品中,其中有一個API可以讓合作伙伴定製和添加東西。首先你不會知道,而且你無法測試是否會因爲某些定製化而破壞某些東西。其次,產品基於幀,幀的行爲特別是幀間通信在怪癖模式下完全不同。不幸的是,怪癖模式在這裏被濫用爲框架添加一些「功能」。 – Chris