gpt4 book ai didi

javascript - 如何使用 chrome 扩展解除 document.ondblclick 的绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 01:55:59 27 4
gpt4 key购买 nike

一些网站

<SCRIPT SRC="js/tt2.js"></SCRIPT>

tt2.js

toggle=0;
function dblclick() {
if (toggle==0) {
var sc=99999; toggle=1;
} else {
var sc=0; toggle=0;
}
window.scrollTo(0,sc);
}
if (document.layers) {
document.captureEvents(Event.ONDBLCLICK);
}
document.ondblclick=dblclick;

“document.ondblclick = null;”是行不通的。如何使用 chrome 扩展删除(取消绑定(bind))dblclick 事件?

最佳答案

原因:

您可以覆盖document.ondblclick。问题在于上下文。您有 chrome-extension 上下文和 page-context。

possible context

为了进行测试,您可以在扩展程序中添加以下内容:

document.ondblclick = function () {
alert("chrome extension ondblclick event");
}

您可以在两种上下文中查看该事件:

event callbacks on each context

如果您触发此事件,您将看到这两个事件都被调用。

解决方案:

您需要的是覆盖页面上下文中的ondblclick。真正简单的方法是将您自己的脚本添加到页面中 - 然后它将在页面上下文中运行。

要注入(inject)脚本,您可以编写inject.js:

(function(){
var scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.setAttribute('src', chrome.runtime.getURL('js/ownOndblclick.js'));

document.getElementsByTagName('head')[0].appendChild(scriptElement);
}());

并且您需要必须注入(inject)的脚本。在本例中,这是 ownOndblclick.js:

document.ondblclick = function () {
alert("free");
}

警报仅用于测试。当您看到它按预期工作后将其删除。最后一步是调整 manifest.json:

{
...

"permissions": [
"http://whereever/*"
],

"content_scripts": [
{
"matches": ["http://whereever/*"],
"js": ["js/inject.js"]
}
],

"web_accessible_resources" : [
"js/ownOndblclick.js"
]
}

就是这样。

注入(inject) ownOndblclick.js 的另一种方法是将其直接放入 inject.js 中:

(function(){
var scriptElement = document.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.innerText = 'document.ondblclick = function () { alert("free");}';

document.getElementsByTagName('head')[0].appendChild(scriptElement);
}());

然后您可以从 manifest.json 中删除 web_accessible_resources

关于javascript - 如何使用 chrome 扩展解除 document.ondblclick 的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com