检索当前聚焦/鼠标悬停的超链接URL

时间:2011-02-12 02:02:03

标签: javascript firefox url hyperlink focus

我正在开发一个扩展程序,我需要找到一种方法来捕获当前关注的链接。

当我们点击TAB键或鼠标悬停在超链接上时,我们可以在状态栏中看到(firefox 4+地址栏的右侧),该链接的URL已经显示。

如何在加载项在线构建器中使用Javascript捕获此URL?如何将其存储到变量中,每当更改聚焦链接时,变量值将相应更新?我在网上搜了几个小时,到目前为止发现这个函数名为Document.activeElement.href ??但我不确定这是我需要的,如果是,我该如何使用呢?

请帮忙!

谢谢!!!

4 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

<html><body>
    <a href="#link1">link 1</a>
    <a href="#link2">link 2</a>

    <div id="output"></div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
    <script>
        var handler = function() {
            jQuery('#output').text( jQuery(this).attr('href') );
        };
        jQuery('a').focus(handler).mouseover(handler);
    </script>
</body></html>

如果您不想使用jQuery,请告诉我,我会重新写下我的答案。

答案 1 :(得分:1)

变量window.XULBrowserWindow.overLink恰好包含状态栏中显示的当前悬停URL,但它不会保存正在悬停的实际元素。

答案 2 :(得分:0)

你需要在感兴趣的所有链接上放置事件处理程序,使用 jQuery 非常容易,当事件触发时你可以捕获 href 相应的属性和流程

答案 3 :(得分:0)

http://jsfiddle.net/DmX5j/6/

var links = document.getElementsByTagName('a'),
   linkDisplay = document.getElementById('currentLink'),
   currentLink;

for(var i =0; i < links.length; i++){
    links[i].onfocus = function(){updateLink(this.href)};
    links[i].onmouseover = function(){updateLink(this.href)};
}

function updateLink(link){
    currentLink = link; 
    linkDisplay.innerHTML = currentLink;
}
纯粹的JS方式。不确定这是否是您正在寻找的,基本上在焦点或鼠标悬停时更新当前链接。