Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在移出当前域_Javascript - Fatal编程技术网

Javascript 正在移出当前域

Javascript 正在移出当前域,javascript,Javascript,假设我在当前网页上有许多锚定链接,其中一些链接指向一些不同的域 所以我想要的是在移动到不同的域之前向用户显示一个弹出/消息类型的东西 解决方案1:页面加载后,我们可以将click事件绑定到每个锚链接,当用户单击任何链接时,我们可以检查外部链接并显示消息 问题1。有没有其他比解决方案1更好的优化方法 问题2。如何检查链接是否将您带出当前域/指向与当前域不同的域 谢谢, 邦德 有没有其他比解决方案1更好的优化方法 将单个事件绑定到文档并检查单击目标。这叫做 如何检查链接是否将您带出当前doi 检查所

假设我在当前网页上有许多锚定链接,其中一些链接指向一些不同的域

所以我想要的是在移动到不同的域之前向用户显示一个弹出/消息类型的东西

解决方案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) ;
   }