2017-03-01 98 views
0

在全屏模式下使用Safari時,無法禁用或覆蓋上下文菜單(右鍵單擊/ Ctrl +單擊視頻)。無法禁用/覆蓋上下文菜單Safari全屏模式

通常情況下,一個可以禁用或使用oncontextmenu處理器超越:

videoEl.oncontextmenu = (e) => { 
e.preventDefault(); // or return false; 
} 

上述工作對於所有瀏覽器包括Safari時不處於全屏模式。但是,當視頻處於Safari全屏模式時,代碼不會觸發。要重現,只需全屏並按Ctrl +單擊。將顯示默認的上下文菜單。

我也雖然關於捕捉點擊/鍵盤事件,但這些都不會在全屏模式下觸發。

然而,其他玩家如Youtube's可以在Safari全屏模式下禁用並覆蓋上下文菜單。

任何想法?

謝謝

+0

您是否嘗試過使用'e.preventDefault()'*和*'return false'? – gyre

回答

0

在這裏回答,因爲現有的答覆(謝謝)沒有解決問題。

必須從播放器中刪除「控件」屬性。不幸的是,這也需要重新實現所有的播放器控件。

使用此方法,您可以防止Safari全屏模式下的右鍵單擊菜單,並在需要時提供您自己的自定義菜單。

0

嘗試增加:

videoEl.oncontextmenu = 
    function() { 
     return false; 
    }; 

這可能工作太:

video::-webkit-media-controls { 
    display:none !important; 
} 

另外,提醒一下,它不是真的建議禁用上下文菜單,它根本無法保護您的源代碼,並且可能導致惱人的用戶體驗。

無論如何,希望這有助於。

+0

*它根本不能保護你的源代碼*。 。 。如果可以使用簡單的更改來阻止大多數非技術用戶對您的內容進行非法訪問,有時候這是值得的。 – gyre