javascript - Chrome 扩展:通过内容脚本修改 DOM 元素的问题
问题描述
我在使用内容脚本修改https://lichess.org/tv上的 DOM 元素时遇到问题。最终的目标是在用户名下方显示附加信息(例如,他/她是在玩侵略性/防御性国际象棋吗,...)——因此,我开始尝试更改用户名:
targetNode[0].innerHTML = "test"
但它似乎对这个特定元素没有影响(我通过 querySelector 获取元素 - 使用 console.log() 验证)。当我尝试更改网站上的其他元素时,它可以工作:
const otherNode = document.querySelectorAll(".player > a");
otherNode[0].innerHTML = "othertest"
我是开发扩展程序/javascript 的新手,所以我很难弄清楚我在这里做什么 - 任何见解都有帮助。谢谢!
清单.json
{
"name": "SomeExtension",
"version": "0.0.0",
"description": "Description.",
"content_scripts": [
{
"matches": [ "http://*.lichess.org/*", "https://*.lichess.org/*" ],
"js": [ "content.js" ]
}
],
"manifest_version": 2
}
内容.js
console.log("Hello, World from content.js!");
//node(s) I want to change
const targetNode = document.querySelectorAll(".ruser > a");
console.log(targetNode[0].innerHTML);
targetNode[0].innerHTML = "test"
document.addEventListener('keypress', k);
function k(e) {
console.log(`${e.code}`)
targetNode[0].innerHTML = "test"
}
//other node where it works
const otherNode = document.querySelectorAll(".player > a");
otherNode[0].innerHTML = "othertest"
解决方案
推荐阅读
- javascript - Angular 单元测试:如何检查被监视的方法是否获得了正确的参数?
- gcc - 构建 glibc 时防止构建静态库
- c# - 如果没有剩余“,”或“。”,请按数字添加额外的 ,00
- ios - 如何让固定区域在 Swift 中拥有更大的区域?
- php - 用户使用 Laravel 提交联系表单时收到电子邮件
- xamarin - 如何更改窗口的背景颜色?
- java - 从现有 XML 中读取值并在 Json 中填充它们
- python - Golang vs Python - 十六进制字符串到 Int
- php - RegExr 至少有 2 个字母和可选字母,但没有其他字母?
- android - 比较firebase数据库中的当前日期