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

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

附言:我是在谈论Google搜索结果页面上的链接上的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对象(例如javascript声明的onmousedown事件)。它们在沙箱中执行。

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

10-07 21:46