2010-06-04 87 views
5

我正在使用上下文菜單jquery插件,我需要檢測哪些瀏覽器支持此操作。如何才能做到這一點?檢測瀏覽器是否支持右鍵單擊事件覆蓋

聽說Opera和Safari的某些版本不支持這個右鍵單擊覆蓋業務

+1

此概述可能有用:http://www.quirksmode.org/dom/events/contextmenu.html – 2010-06-04 05:59:52

回答

4

您可以手動創建並觸發一個contextmenu事件。如果您設置了正確的處理程序,則可以檢測處理程序是否被調用。

下面是一個例子(使用jQuery事件創建和觀察):

function testContextMenuEvent() { 
    var supported = false; 
    function handler(e) { 
    supported = true; 
    e.stopPropagation(); 
    } 
    $(document).bind('contextmenu', handler); 
    var evt = jQuery.Event("contextmenu"); 
    $(document).trigger(evt); 
    $(document).unbind('contextmenu', handler); 
    return supported; 
} 

下面是測試頁:http://jsfiddle.net/Hk4xA/6/

EDIT2:在DOM再次striken。我忘記了createEvent完全無法在IE上運行。所以我用jQuery來創建事件。

+0

不錯!認爲它可以適應jquery,但?我沒有使用原型 – Jonah 2010-06-04 15:45:19

+0

當然。原型用於第5,7和11行。對於類似的方法,jQuery的事件API只是不同的名稱:observe - > bind,stopObserving - > unbind,stop - > preventDefault。查看我的編輯例子。 – Alsciende 2010-06-07 07:55:20

+0

感謝一個男人 – Jonah 2010-06-11 04:48:04