检查锚点是在弹出窗口还是新窗口中打开

时间:2014-04-12 13:53:27

标签: jquery events popup anchor

作为我正在编写的jQuery插件的一部分,我想在链接到另一个页面的页面上添加一个类来锚定标记。这是我到目前为止所得到的:

$('a').each(function(){
         url = $(this).attr("href");//grab the url

        if(url != undefined && url.length > 0){             
            if(url.slice(0, 1) != "#"){//We don't want ones that are links within the same page
                //We also dont want ones that are associted with popups
                rel_check = $(this).attr("rel");
                if (!rel_check) {                       
                    //has it got any events attached to it?
                }
            }
        }
    });

所以我过滤掉了同一页面中的所有链接。我检查是否有任何链接有一个rel属性 - 我想这将消除一些与弹出窗口关联的锚点(我知道fancybox,greybox和lightbox使用rel标签,但并不总是......)。所以这就是我被卡住的地方。锚可以在弹出窗口中打开但不具有rel属性。我该如何检查?我认为检查附加到元素的任何事件可能会起作用,但我似乎无法让它工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您最好检查target属性。例如,带有target="_blank"的链接将在新标签页中打开。

但是,如果链接是通过javascript管理的,那么您将无法决定是否会打开新标签/页面。因此,您可能希望消除具有单击处理程序的所有链接:

var eventObj = $(this).data('events');
if (!eventObj || !eventObj.click) {
  // this element doesn't have a click handler.
}