我正在创建一个chrome扩展程序,当它检测到某个字符串时,它将在扩展程序上显示某个html页面。因此,我尝试使用.search后接“ if else语句”。为了清楚说明它正在运行,我在“如果不是”中设置了一个警报。但这似乎不起作用。
有帮助吗? 这是javascript文件
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var searchText = text.search(/nmd/g);
// var replacedText = text.replace(/nmd/gi, 'nmdReplaced');
if(searchText == text){
alert("connected");
}
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}
text.replace有效,但这不是我想要的。
答案 0 :(得分:0)
Search
方法返回匹配的字符串或模式的index
,而不是字符串本身;如果不匹配,则返回-1
所以您的if(searchText == text)
总是会失败,并且会转到其他部分,您只需检查if(searchText !== -1)