我的JavaScript如何檢測事件是否可用?功能檢測:JavaScript中的突變事件可用性?
我知道一些偉大的event-compatibility tables,但我需要使用功能檢測,而不是瀏覽器嗅探加上查找表。
具體來說,我的JS使用DOM突變事件(DOMNodeInserted
和DOMSubtreeModified
) - 這在除了Internet Explorer之外的所有瀏覽器中都很好用。
那麼,如何檢測瀏覽器是否支持DOMNodeInserted
?
我的JavaScript如何檢測事件是否可用?功能檢測:JavaScript中的突變事件可用性?
我知道一些偉大的event-compatibility tables,但我需要使用功能檢測,而不是瀏覽器嗅探加上查找表。
具體來說,我的JS使用DOM突變事件(DOMNodeInserted
和DOMSubtreeModified
) - 這在除了Internet Explorer之外的所有瀏覽器中都很好用。
那麼,如何檢測瀏覽器是否支持DOMNodeInserted
?
如果你只是要檢查瀏覽器是否支持一般的突變事件,你可以使用這個簡單的測試:
var hasMutationEvents = ("MutationEvent" in window);
下面是一堆流行的瀏覽器的結果: http://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA
要在另一個瀏覽器中運行瀏覽器測試,請轉到: http://jsbin.com/aqeton/4/
我環顧了一下谷歌。這看起來像它可能是你想要什麼:
http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
我收回它。該頁面不提供用於突變事件,特徵檢測的任何實用程序。我認爲這將是好的,因爲它聲稱鏈接到*另一個*頁面。但是,第二頁的代碼並不是非常跨瀏覽器,並且還會對未來的IE功能集進行假設。 – 2011-02-03 09:42:01
這個問題是很老,但如果任何人在其別人絆倒,用於檢測突變事件的解決方案在這個答案解釋: How to check browser support for capabilities/events?
從這個問題的答案:
不能檢測突變事件,並Modernizr的不適合這個工作...
「檢測」突變事件支持的唯一方法是嘗試並觸發事件。
對於正常事件,請在takteek的回答中使用perfectionkills文章。這似乎還不支持嗅探一些新的HTML5事件,如「輸入」。
是的,這看起來是一個很好的,第一次通過的過濾器。 +1 – 2012-03-21 23:38:24