javascript - 如何通过 Chrome 扩展程序删除事件监听器

标签 javascript google-chrome-extension

页面加载后,我需要使用 Chrome 扩展程序删除以下事件监听器。

页面内容:

<input type="password" size="15" value="" autocomplete="off"
    onkeyup="javascript:vaciar(this)"
    onkeypress="javascript:vaciar(this)"
    onkeydown="javascript:vaciar(this)" name="password"
id="contrasena" />

我的内容脚本中的代码是:

var password_field = document.getElementById("contrasena");
password_field.removeAttribute("onkeypress");
password_field.removeAttribute("onkeydown");
password_field.removeAttribute("onkeyup");
password_field.onkeypress = null;
password_field.onkeydown = null;
password_field.onkeyup = null;

由于某种原因,事件监听器保持事件状态,但是当我在控制台中复制并执行代码时,它可以工作。

最佳答案

由于isolated context而失败上下文脚本所在的位置。

要影响页面上下文设置的处理程序,您需要将上述代码注入(inject)到页面中。

参见this question获取规范的解释和示例。

关于javascript - 如何通过 Chrome 扩展程序删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407862/

相关文章:

javascript - 事件页面和背景页面的区别

javascript - 从 Chrome 扩展程序运行 Google Apps 脚本

javascript - 在 JavaScript 中重写 bool 值

Javascript window.open 被 IE 弹出窗口拦截器拦截

javascript - 从 XML 文件中提取属性?

google-chrome-extension - 我可以通过内容脚本对服务器上托管的 REST API 进行 ajax 调用吗?

javascript - Angularjs - 动态添加和更新 DOM

javascript - 如何用 jQuery 中的 dataTables 替换标准引导表?

javascript - 如何循环处理请求的 javascript 页面?

google-chrome - 如何设置通知扩展 Chrome 的关闭时间