我正试图找到一个创造性的解决方案。我知道有很多脚本,很多来自stackoverflow本身,可以通过body onload对网页进行“扫描” - 但这不是我正在寻找的。 p>
我正在寻找可以包含在页面标题中的单个脚本(通过include,因此它包含在所有页面上),用于检测用户点击的href是外部还是本地,以及是否是本地它会显示一条消息。
我已经有了一个解决方案,要求我在每个href上包含一个onClick处理程序。问题是这个特定的网站确实有数百个hrefs ..我正在寻找一个非常干净的解决方案,这将节省我的时间。
我有一些我正在玩的剧本,我只是想知道是否有人熟悉这种可以轻松做到这一点的方法。
我更喜欢Javascript而不是Jquery。
答案 0 :(得分:1)
您应该依赖使用委托的冒泡机制
,而不是附加单个事件处理程序var body = document.getElementsByTagName('body')[0];
body.addEventListener('click', function(e){
if(e.target.nodeName === "A"){
var href = e.target.getAttribute('href'),
selfhost = window.location.hostname;
if(href.indexOf(selfhost) !== -1){
// display message here
}
}
}, false);
答案 1 :(得分:0)
使用$.on()
http://api.jquery.com/on/并将其绑定到您的文档。因此,您只需附加1个处理程序即可处理所有数千个链接。例如
var onClickLink = function(e) {
// handle event here
};
$(document).on('click', 'a', onClickLink);