首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用我的firefox-addon进行持久的DOM更改?

如何使用我的firefox-addon进行持久的DOM更改?
EN

Stack Overflow用户
提问于 2019-05-09 02:14:01
回答 1查看 55关注 0票数 2

目前,我正在尝试编写我的第一个firefox插件。目标很简单:我试图找到网站上出现的每个特定用户名,并将它们替换为一个字符串。我可以手动搜索这些匹配项,因为数量不是很大。这适用于网站的HTML中出现的一个元素,该元素有一个ID,并显示在网站的每个实例的标题中:

代码语言:javascript
复制
<a href="/user/MyUserName" id="user-profile-name" class="head-link">MyUserName</a>

这就是我用字符串替换用户名的方法:

代码语言:javascript
复制
document.getElementById("user-profile-name").innerHTML = "The String";

我尝试了这个和许多其他方法来处理其他实例,它们没有任何id,它们主要是类:

代码语言:javascript
复制
<a href="/user/MyUsername" class="user um1">MyUserName</a>

如果我尝试用相同的方法更改它们,它在我第一次加载插件时起作用,但当我访问一个新页面(使用出现用户名(用户um1)时使用的相同类)或重新加载页面时,它们只是改回用户名。

代码语言:javascript
复制
var list = document.getElementsByClassName("um1");
for (i=0; i<list.length; i++) {
  list[i].innerHTML = "The String";
}

如何才能使这些更改持久化?更改应该是可视的,插件的目的是隐藏用户名。

EN

回答 1

Stack Overflow用户

发布于 2019-05-10 10:49:31

这些更改不能持久地进行。每次加载该站点的页面时,都需要应用它们。但是,如果使用querySelectorAll(),执行此操作会更容易。

代码语言:javascript
复制
var list = document.querySelectorAll("#user-profile-name,.um1");
for (i=0; i<list.length; i++) {
  list[i].innerHTML = "The String";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56046795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档