【问题标题】:Remove a "onmousedown" event from a DOM element via content script in Google Chrome extension通过 Google Chrome 扩展中的内容脚本从 DOM 元素中删除“onmousedown”事件
【发布时间】:2023-04-04 01:46:01
【问题描述】:

我正在尝试编写一个 Google Chrome 扩展程序,用于从网站上的 <a> 标记中删除 onmousedown 事件。

之前该站点曾经将 onmousedown 事件作为 DOM 的一部分,因此我可以通过调用 element.removeAttribute("onmousedown") 通过内容脚本轻松删除它。 但是现在,他们通过 javascript 添加了该事件,因此我无法通过 content script 直接删除该事件,因为它在不同的 javascript 上下文中运行。

PS:我说的是谷歌搜索结果页面上链接上的onmousedown 事件。早些时候,这个small piece of code 曾经可以工作,但现在它不能工作了,因为onmousedown 现在不是 DOM 的一部分。

var all_main_links = document.getElementsByClassName("r");
for (i=0; i<all_main_links.length; i++){
    var current_link = all_main_links[i].childNodes[0];
    current_link.removeAttribute("onmousedown");
    }

【问题讨论】:

标签: javascript google-chrome google-chrome-extension content-script


【解决方案1】:

内容脚本无法访问页面中的 javascript 对象(例如 javascript 声明的 onmousedown 事件)。它们在沙盒中执行。

但是你可以做的是在页面的头部插入一个脚本(带有脚本标签)来关闭事件:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2016-04-05
    • 1970-01-01
    • 2014-02-14
    • 2011-10-03
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多