[英]How to run script on page from chrome extension context?
我想知道如何禁用事件監聽器“復制”
我認為是這樣的:
.js文件:
let btn = document.getElementById('btn');
document.body.addEventListener('click', function(e) {
if (e.target.id === 'btn') {
e.stopPropagation();
}
}, {
capture: false
});
提前致謝!
manifest.json:
{
"name": "Test",
"version": "1.0",
"description": "Just testing!",
"manifest_version": 2,
"icons": {
"48": "images/icon_48.png",
"128": "images/icon_128.png"
},
"browser_action": {
"default_icon": "images/icon_16.png",
"default_popup": "popup.html"
}
}
要訪問該網頁,您需要一個內容腳本,因為彈出窗口是一個單獨的頁面,具有自己的DOM, document
, window
,URL和所有內容。
您還需要攔截copy
事件,如devtools的事件偵聽器面板中所示:
manifest.json應該具有以下內容:
"content_scripts": [{
"matches": ["https://moller.jusbrasil.com.br/*"],
"js": ["content.js"],
"run_at": "document_start"
}]
content.js:
window.addEventListener('copy', e => e.stopImmediatePropagation(), true);
讓我們分解一下:
document_start
運行 true
意味着在事件分發過程的捕獲階段中調用我們的偵聽器-在任何其他標准冒泡階段偵聽器之前 window
是捕獲階段的第一個事件目標 因此,最終結果是可以確保在頁面偵聽器之前調用我們的偵聽器。
PS如您所見,此任務無需使用browser_action彈出窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.