Javascript 将元素值更改为其他符号
大家好, 我试图通过使用纯js而不使用任何框架来更改主体中每个元素的值 例如,您打开console insert js,它会将body的每个元素中的所有值更改为其他符号 因此,基本上我可以得到所有的可见字在网站上的用户没有任何html标记 比如:Javascript 将元素值更改为其他符号,javascript,Javascript,大家好, 我试图通过使用纯js而不使用任何框架来更改主体中每个元素的值 例如,您打开console insert js,它会将body的每个元素中的所有值更改为其他符号 因此,基本上我可以得到所有的可见字在网站上的用户没有任何html标记 比如: <li>This is text</li> t->p h->s i->e s->l e->o x->z 这是文本 t->p h->s i->e s->l e->o x->z 将是 &l
<li>This is text</li>
t->p
h->s
i->e
s->l
e->o
x->z
这是文本
t->p
h->s
i->e
s->l
e->o
x->z
将是
<li>Psel el pozp</li>
Psel-el-pozp
所以,不知道如何循环每个元素的值。
这就是我试过的
var elems = document.body.getElementsByTagName("*");
for (i = 0; i < elems.length; i += 1) {
if (elems[i].innerHTML.indexOf('<script') != -1){
console.log(elems[i]);
} else {
continue;
}
}
function validate(element){
if(element.indexOf('<div') == -1){
return false;
} else if(element.indexOf('<script') == -1){
return false;
} else {
return true;
}
}
var elems=document.body.getElementsByTagName(“*”);
对于(i=0;i 如果(elems[i].innerHTML.indexOf(“首先,在for
循环中,将调用添加到validate
。然后在validate
中,添加文本替换:
var elems = document.body.getElementsByTagName("*");
for (i = 0; i < elems.length; i += 1) {
if (elems[i].innerHTML.indexOf('<script') != -1){
console.log(elems[i]);
} else {
validate(elems[i]);
}
}
function validate(element){
if(element.indexOf('<div') == -1){
return false;
} else if(element.indexOf('<script') == -1){
return false;
} else {
element.innerText = element.innerText.replace("t", "p"); //Add the others as well
}
}
var elems=document.body.getElementsByTagName(“*”);
对于(i=0;i
✱大写字母和语法更正是我的
只需使用.textContent
或.innerText
属性,就可以轻松地从HTML中提取文本。结果之间存在一些显著差异,标准之间存在细微的不一致,请参阅上面的链接和下面的演示
演示
运行演示并单击结果
链接或滚动至最底部
var content=document.getElementById('content');
var tC=document.getElementById('textContent');
tC.textContent=content.textContent;
var iT=document.getElementById('innerText');
iT.innerText=content.innerText;
html{
滚动行为:平滑
}
家
结果
textContent
innerText
您发布的代码没有调用验证
函数,因此我将完全忽略这一点。您声明的目标确实不是非常明确,但是我将尝试使用类似于您所拥有的内容循环一些元素
对于我的代码,我向所有未被跳过的内容添加了一个类;在这里,您将进行处理;调用函数等,即el.classList.add(“显示处理器”);
注意:skipList
an函数filterBySkipCheck
是这里的关键部分
功能剂量仪(el){
const showplace=document.getElementById('actions-display')
.getElementsByClassName('showme')[0];
showplace.innerText=showplace.innerText+el.innerText;
const textContentOutput=document.getElementById('textContentOutput');
const innerTextOutput=document.getElementById('innerTextOutput');
textContentOutput.innerHTML=el.textContent;
innerTextOutput.innerHTML=el.innerText;
}
函数hasParentWithMatchingSelector(目标、选择器){
return[…document.queryselectoral(选择器)].some(el=>
el!==目标和el.contains(目标)
);
}
函数hasMatchingSelector(目标、选择器){
return[…document.queryselectoral(选择器)].some(el=>
el==目标
);
}
函数hasClass(元素,类名){
return元素.classList.contains(classname);;
}
函数hasSelfOrParentWithClass(元素,类名){
if(element.classList.contains(classname))返回true;
返回element.parentNode&&hasSelfOrParentWithClass(element.parentNode,classname);
}
函数hasParentWithClass(元素,类名){
返回hasParentWithMatchingSelector(元素“..”+类名);
}
函数过滤器BySkipCheck(el、索引、myarr、skipList){
设Isskiped=false;
//处理跳过列表中的每个项目
skipList.forEach(函数(跳过){
如果(!isSkipped&&skip.matchType==='tag'){
IsSkiped=el.tagName===skip.match;
}
如果(!isSkipped&&skip.matchType==='skipclass'){
ISSKIPED=hasClass(el,skip.match);
}
如果(!isSkipped&&skip.matchType==='selector'){
IsSkiped=hasMatchingSelector(el,skip.match);
}
如果(!isSkipped&&skip.matchType==='parentselector'){
IsSkiped=hasParentWithMatchingSelector(el,skip.match);
}
如果(!isSkipped&&skip.matchType==='element'){
ISSKIPED=el==skip.match;
}
});
返回信号被切断;
}
函数处理(元素、skipL){
//筛选要跳过的内容
常量filteredElements=[…元素].filter(函数(el、index、myarr){
返回过滤器BySkipCheck(el、索引、myarr、skipL);
});
//这回答了一个问题,即如何处理/循环所有数据,以及如何进行过滤
for(设i=0;i
。显示处理器{
边框:实心1px红色;
}
.节目主持人{
边框:实心1px绿色;
}
var myfriend=“冥王星”;
冷杉