作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法让我的网络扩展阻止 [onclick*='ga'] 作为属性。
我尝试过使用
window.onload = function() {
let Removed = 0
const anchorElements = document.getElementsByTagName('A')
for (element of anchorElements) {
if (!element.getAttribute('a[onclick*='ga']')) continue
element.removeAttribute('a[onclick*='ga']')
Removed += 1
chrome.extension.sendMessage(Removed)
}
}
和
window.onload = function() {
let Removed = 0
const anchorElements = document.getElementsByTagName('A')
for (element of anchorElements) {
if (!element.getAttribute("onclick='ga'")) continue
element.removeAttribute("onclick='ga'")
Removed += 1
chrome.extension.sendMessage(Removed)
}
}
结果应该是扩展程序删除任何 onclick 属性为“ga”的链接,然后添加 1 来删除,这将更新扩展程序徽章。
最佳答案
您的代码中有错误。这是静态内容的示例。如果内容是使用 JavaScript 生成的,则需要额外的代码。
不需要window.onload
document.querySelectorAll('a[onclick*="ga"]').forEach(item => item.removeAttribute('onclick'));
如果你想记数
const a = document.querySelectorAll('a[onclick*="ga"]');
a.forEach(item => item.removeAttribute('onclick'));
chrome.runtime.sendMessage(a.length);
在上述循环内发送异步消息 runtime.sendMessage
不是一个好主意。
关于javascript - 如何让 .getAttribute 和 .removeAttribute 匹配 [onclick* ='ga' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613958/
我是一名优秀的程序员,十分优秀!