后续代码不执行

原生 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/*等