我一直試圖讓它作業一段時間,并且已經搜索了我想出的所有關鍵字。
我正在構建一個 Chrome 擴展程式,它會在分散注意力的網站上打開一個模式,提示用戶輸入他在這個網站上的意圖。
可能有更多網站可能會出現此問題,到目前為止我只遇到過 youtube。
當用戶輸入某些內容時,youtube 快捷方式仍然處于活動狀態,并且輸入欄位可能會失去焦點。假設有人輸入“f”,youtube 然后全屏播放視頻/“k”youtube 開始或停止視頻。
有沒有辦法禁用 youtube 快捷方式?或者另一種解決方法,我沒有想到?
Modal 位于 shadowRoot 內,因此不會干擾網站的樣式。
uj5u.com熱心網友回復:
事件分兩個階段分派:
- 捕獲,事件
window通過其 DOM 樹祖先從元素傳播到元素, - 冒泡,事件從元素傳播到
window默認階段。
解決方案是在第一個調度目標 ( ) 上的第一階段(捕獲)注冊一個偵聽器window,并停止事件,使其永遠不會到達站點正在偵聽的默認第二階段。
window.addEventListener('keydown', stopPropagation, true);
function stopPropagation(e) {
e.stopPropagation();
}
關閉對話框后,恢復站點的行為:
window.removeEventListener('keydown', stopPropagation, true);
PS 在已經在捕獲階段注冊偵聽器的站點上,您必須通過使用"run_at": "document_start"window宣告內容腳本來更早地附加您的偵聽器,并通過添加來取消其他偵聽器。windowe.stopImmediatePropagation()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/413056.html
標籤:
