Javascript 正在移出当前域
假设我在当前网页上有许多锚定链接,其中一些链接指向一些不同的域 所以我想要的是在移动到不同的域之前向用户显示一个弹出/消息类型的东西 解决方案1:页面加载后,我们可以将click事件绑定到每个锚链接,当用户单击任何链接时,我们可以检查外部链接并显示消息 问题1。有没有其他比解决方案1更好的优化方法 问题2。如何检查链接是否将您带出当前域/指向与当前域不同的域 谢谢, 邦德 有没有其他比解决方案1更好的优化方法 将单个事件绑定到文档并检查单击目标。这叫做 如何检查链接是否将您带出当前doiJavascript 正在移出当前域,javascript,Javascript,假设我在当前网页上有许多锚定链接,其中一些链接指向一些不同的域 所以我想要的是在移动到不同的域之前向用户显示一个弹出/消息类型的东西 解决方案1:页面加载后,我们可以将click事件绑定到每个锚链接,当用户单击任何链接时,我们可以检查外部链接并显示消息 问题1。有没有其他比解决方案1更好的优化方法 问题2。如何检查链接是否将您带出当前域/指向与当前域不同的域 谢谢, 邦德 有没有其他比解决方案1更好的优化方法 将单个事件绑定到文档并检查单击目标。这叫做 如何检查链接是否将您带出当前doi 检查所
检查所单击链接的
href
属性迭代锚点,并过滤掉包含主机部分的href
属性,例如使用正则表达式:
var r, l, i, n, o, a ;
r = /(?:(http|https):\/\/)?([^\/]+)?(?:\/(.+))?/ ;
l = document.getElementsByTagName("a") ;
for( i = 0, n = l.length ; i < n ; i++ ) {
o = l[i] ;
if( !! ( s = o.getAttribute("href") ) ) {
a = r.exec(s) ;
if( !! a[2] ) //.. add your handlers to the A element
}
}
其中href
是单击的A
元素的href
属性的值
就我个人而言,我不同意建议监控每次点击
事件的解决方案。通常,在页面生命周期中,您会有更多不需要引用的单击事件。换句话说,这将产生不必要的开销。你可以像FB一样做-每个指向另一个站点的链接都被重定向-FB.com?redirect=somelink或类似的东西。谢谢昆汀!我试着使用下面的代码片段检查相同的代码:$(document.bind('click',function(event){alert(event.target);});如果我将上面的绑定事件附加到文档中,那么前面的绑定事件是否有效。我问了上述问题,因为该网站已经就位,我们为这些链接编写了更多的jquery代码。对于某些链接,我们确实有href=“javascript:void(0)”,在绑定事件处理中,我们通过jquery代码设置href。@邦德先生,如果您不停止事件
传播,单击事件
最终将冒泡到文档
级别:因此,是的,它将组合工作。
//..
function(href) {
if( confirm("You are about to leave this website.\n\nAre you sure you want to continue?") ) window.location.assign(href) ;
}