后续代码不执行
原生 javascript 的 getElementById() 和 getElementsByTagName() 方法来操作指定的元素时,如果被操作的元素不存在,则浏览器会抛出错误,并终止代码的运行,更新影响其后的代码运行。为了避免上述情况的发生,所以在无法确定要操作的元素是否存在时,可以利用下面的判断代码来先判断元素是否存在,如果判断元素存在时,再写入操作的流程代码。
if (document.getElementById("tt")){
//元素存在的操作代码
}
如何检查网址元素是否包含某个特定字符串
location.href.indexOf("checkout")==-1//不包含,
getElementsByTagName()
方法可返回带有指定标签名的对象的集合。
调用函数
<button onclick="myFunction()">点我</button>
方法后面要括号。
If函数
if (条件) {
条件为 true 时执行的代码块
} else {
条件为 false 时执行的代码块
}
定义函数
<script>
function myFunction(){
var list=document.getElementsByTagName("UL")[1]
list.getElementsByTagName("LI")[0].innerHTML="Milk";
};
</script>
函数后面需要分号。
第一个元素
document.getElementsByClassName("code notranslate")[0].firstChild
在指定的秒数后调用函数或计算表达式
setTimeout("checkout())", 3000 )
function Checkout(){
console.log("wait checkout");
//enroll part
if (location.href.indexOf("checkout")!=-1)
{
console.log("go to enroll in");
//ellipsis btn btn-lg btn-primary btn-block
if(document.getElementsByClassName("ellipsis btn btn-lg btn-primary btn-block")){
document.getElementsByClassName("ellipsis btn btn-lg btn-primary btn-block")[0].click();
}
}
console.log("enroll in");
}
停止倒计时调用
meter1=setTimeout("count1()", 1000)
clearTimeout(meter1)
错误处理
try {
var freeText=document.getElementsByClassName("sr-only")[0].nextSibling.innerText;
if (freeText!=null){
if (freeText=="Free"){
document.getElementsByClassName("btn btn-lg btn-primary btn-block")[0].click()
} else
{
console.log("It is not free");
}
} else {
console.log("This is not the free page");
}
} catch(e){
console.log(e.stack);
}
Try catch,也可以使用。
获得网页标题和网址
var title = document.title;
var url = location.href;
匹配网址:
match,只有匹配的网址才会执行对应的脚本,例如、http://、http://www.baidu.com/*等