我是JS的新手。 我正在尝试使用Greasemonkey创建一个脚本来自动填充网页上的表单。
如果页面上存在以下错误代码,我希望我的脚本单击“返回”按钮。
<div>
<div id="registration_error" class="errBlock" style="color:Red;">
<ul><li>Address is required.</li></ul>
</div>
我尝试了一些代码(我不知道是否正确,我做出了假设)没有成功,包括;
if(document.getElementById("registration_error).innerText.Contains("Address is required.")
{
document.getElementsByClassName('btnRegister')[0].click();
}
也尝试了
if(document.getElementsByClassName('errBlock').innerText.Contains("Address is required")
if ("#registration_error").innerText.Contains("Address is required")
等等
根据我的知识,我尝试了很多组合。单击按钮工作正常但无法确定if条件。
提前致谢。
答案 0 :(得分:2)
您尝试的第一段代码是最接近正确的。
第一部分document.getElementById("registration_error")
是正确的(除了你遗漏了你的引号)。
然后,您尝试在此registration_error
div中获取HTML代码。正确的方法是.innerHTML
。 (.innerText
不兼容浏览器(在我的网站上没有工作))
检查HTML是否包含"Address is required"
的最后一部分是错误的。检查字符串中是否包含一些文本的正确方法是使用"hello world".indexOf("llo")
。如果找到,此函数将返回字符串的位置,如果字符串中未包含文本,则返回-1
。
因此,您的最终if
语句如下所示:
if(document.getElementById("registration_error").innerHTML.indexOf("Address is required.") !== -1){
document.getElementsByClassName('btnRegister')[0].click();
}
这对你有用。请注意,Javascript 区分大小写,因此请确保您做到了。