ps:转自别人遇见的面试题,虽然比较小,但是感觉还是比较实用哈~
题目:当点击页面链接时,验证链接是否在*.taobao.com下,如果不是弹出确认提示
主要考虑两个步骤,一是事件的绑定、处理。另一个是字符串的验证,这里我使用了一个偷懒的做法,因为*.taobao.com应该出现在字符串首部。要考虑http/https和有http://和无几种情况
ES 6的String.contains() 方法也可以用来做包含验证。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<a class="link" href="http://www.taobao.com">淘宝</a>
<a class="link" href="http://www.jd.com">京东</a>
<script>
var link = document.getElementsByClassName('link')
var listener = function(event) {
var e = event || window.event
var href = e.target.getAttribute('href')
if (href.indexOf('.taobao.com') === -1) {
var c = confirm('确定离开吗')
if (c === false) {
e.preventDefault()
e.stopPropagation()
}
}
}
// 绑定事件
for (var i = 0, len = link.length; i < len; i++) {
link[i].addEventListener('click', listener, false)
}
</script>
</body>
</html>