如何删除 chrome 扩展中 html 的事件侦听器?
how can i remove the event listener of html in chrome extensions?
我正在为 chrome 创建一个扩展,我有一个问题。
我想知道,如何从元素中删除事件?
这是我的事件处理程序:
const handler = function (e) {
console.log("on");
};
我希望我的扩展程序将 mousemove
事件添加到 html
标记。我做到了。
document.querySelector("html").removeEventListener("mousemove", handler);
我想做一些事情,当用户点击我的扩展图标时,如果徽章文本打开,从 html
中删除事件监听器;但我不知道如何从 html
标签中删除事件侦听器!我试过了,但我做不到。
chrome.scripting.executeScript({
target: { tabId: tabs[0].id },
function: myFuntion,
args: ["remove"],
});
我试过 removeEventListener
但没用。我在全局范围内定义了我的函数,但它没有工作,我得到一个错误,你的函数是未定义的。我什至试图将函数存储在 chrome 的存储空间中!等等。
但是在为 chrome 开发扩展时,如何从 html 标签中删除事件监听器?
感谢您的帮助。
executeScript注入的代码在运行时,每次都会创建一个新的函数,所以不能删除之前的函数,因为现在它的内部指针不同了。
您可以通过 window
:
保留函数
window.handler = window.handler || function (e) {
console.log("on");
};
然后您可以稍后在另一个 executeScript 中删除它:
document.querySelector("html").removeEventListener("mousemove", window.handler);
我正在为 chrome 创建一个扩展,我有一个问题。 我想知道,如何从元素中删除事件? 这是我的事件处理程序:
const handler = function (e) {
console.log("on");
};
我希望我的扩展程序将 mousemove
事件添加到 html
标记。我做到了。
document.querySelector("html").removeEventListener("mousemove", handler);
我想做一些事情,当用户点击我的扩展图标时,如果徽章文本打开,从 html
中删除事件监听器;但我不知道如何从 html
标签中删除事件侦听器!我试过了,但我做不到。
chrome.scripting.executeScript({
target: { tabId: tabs[0].id },
function: myFuntion,
args: ["remove"],
});
我试过 removeEventListener
但没用。我在全局范围内定义了我的函数,但它没有工作,我得到一个错误,你的函数是未定义的。我什至试图将函数存储在 chrome 的存储空间中!等等。
但是在为 chrome 开发扩展时,如何从 html 标签中删除事件监听器?
感谢您的帮助。
executeScript注入的代码在运行时,每次都会创建一个新的函数,所以不能删除之前的函数,因为现在它的内部指针不同了。
您可以通过 window
:
window.handler = window.handler || function (e) {
console.log("on");
};
然后您可以稍后在另一个 executeScript 中删除它:
document.querySelector("html").removeEventListener("mousemove", window.handler);