背景信息周邊IE9 Treewalker過濾器的Bug工作建議
的bug在IE9它認爲,createTreeWalker
方法的NodeFilter
財產是一個回調函數,而不是包含一個回調函數的對象目前存在。
在這樣的呼叫:
document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, filter, false);
filter
在WebKit和壁虎定義爲 「含有一個方法acceptNode
一個對象,」;然而,在IE9中,根本沒有提及acceptNode - 它期望沒有對象封裝的「回調方法」。
實際問題
那麼,什麼是解決此問題沒有做明確的瀏覽器檢測的最佳方式?在某些情況下,我需要filter
作爲一種方法,而在其他情況下,我需要它成爲包含該方法的對象。有沒有一種乾淨的方式來實現這一點?所有這些瀏覽器聲稱支持DOM 2.0,所以我不能對測試...
文件 - 錯誤的證明
這裏的文檔的每個對比:
壁虎已經接受了一個回調函數以及一個包含acceptNode方法將近10年的對象。見https://bugzilla.mozilla.org/show_bug.cgi?id = 113008 – Neil 2011-05-12 18:55:29
這是毫無疑問的路要走。然而,該標準指出,這是一個包含回調的對象。這個評論並沒有真正解決我的問題,因爲在一天結束時,IE9不支持該標準。所以我猜...你的意思是什麼? – 2011-05-12 19:15:06
這是一條評論,而不是答案。我只想指出一個回調在至少另一個瀏覽器中起作用,以防它有用。 – Neil 2011-05-12 19:19:35