我正在尝试制作一个搜索特定文字的代码,如果找到它会点击一个按钮。它需要不断检查字符串,但我正在努力找到一种方法来实现。我是一个完整的编码新手,所以任何帮助表示赞赏! :)
var findMe = [
//Test
'Hello!',
];
function findText() {
var text = document.querySelector('div[id=BtnText]');
for (var i = 0; i < findMe.length; i++) {
if (BtnText.match(findMe[i])) {
var btnDo = document.querySelector('input[type="submit"][value="Click!"]');
if (btnDo) {
btnDo.click();
}
}
}
}
答案 0 :(得分:1)
稍微编辑你的代码。
我假设您有这样的HTML?
<div id="BtnText">Hello!</div><input type="submit" value="Click!">
您将把代码更改为
var findMe = [
//Test
'Hello!',
];
function findText() {
var div = document.querySelector('div[id=BtnText]');
for (var i = 0; i < findMe.length; i++) {
if (div.innerText.indexOf(findMe[i]) !== -1) {
var btnDo = document.querySelector('input[type="submit"][value="Click!"]');
if (btnDo) {
if (typeof btnDo.onclick == "function") {
btnDo.onclick.apply(elem);
}
}
return true;
}
}
return false;
}
如果你想连续检查。我建议使用setInterval。
var interval = setInterval(function() {
var textFound = findText();
if(textFound) {
clearInterval(interval);
}
},50);
答案 1 :(得分:0)
正则表达式:
(new RegExp('word')).test(str)
(new RegExp(/word/)).test(str)
的indexOf:
str.indexOf('word') !== -1
搜索() 在字符串中搜索指定值或正则表达式,并返回匹配的位置。
var n=str.search("word");
或
var n-str.search(/word/);
if(n>0)
{}
使用window.find()
if (window.find("word", true)){}
//code
while(window.find("word",true){
//code
}
答案 2 :(得分:0)
为什么需要不断进行检查? 您应该采用另一种方法......或者您的脚本将被Chrome阻止,例如,如果它使页面不负责任。你可以暂停,就像Taylor Hakes建议的那样......或者只是调用你的findText函数附加到div上的onChange事件。