淘宝首页需要实现这样一个功能,对于页面上非taobao.com域名下的链接,在用户点击时,需要在链接处弹出提示框,提示用户此链接非淘宝域名下的链接,并给与用户选择是否继续访问。如果用户确认继续访问,则在新窗口打开链接。请写出对应的代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"></meta>
<title></title>
</head>
<body>
<a href="http://www.taobao.com">taobao.com</a>
<a href="http://m.taobao.com">taobao.com</a>
<a href="http://www.baidu.com">baidu.com</a>
<script type="text/javascript" src="link.js"></script>
</body>
</html>
//Method 1 对事件进行处理。这样做的好处是避免了对每一个a标签进行逐个绑定,节省了时间开销,另外代码更简洁。
(function() {
var b = document.body;
var reg = /^(https?:\/\/)?([\da-z\.-]+)\.\btaobao\b\.com([\/\w \.-]*)*\/?$/;
function doClick(event) {
if (event.target.tagName == 'A') {
event.preventDefault();
var href = event.target.href;
if (reg.exec(href)) {
location.href = href;
} else {
if (window.confirm("非本地站点,是否继续?")) {
location.href = href;
}
}
}
}
b.onclick = doClick;
})();
//Method 2
(function() {
var hrefs = document.getElementsByTagName('a');
for(var i=0; i <hrefs.length; i++) {
var href = hrefs[i].getAttribute("href");
hrefs[i].onclick = function(href) {
return function() {
var reg = /^(https?:\/\/)?([\da-z\.-]+)\.\btaobao\b\.com([\/\w \.-]*)*\/?$/;
if(reg.exec(href)) {
return true;
} else {
return window.confirm("非本地站点,是否继续?");
}
}
}(href);
}
})();