我正在开发一个扩展程序,我需要找到一种方法来捕获当前关注的链接。
当我们点击TAB键或鼠标悬停在超链接上时,我们可以在状态栏中看到(firefox 4+地址栏的右侧),该链接的URL已经显示。
如何在加载项在线构建器中使用Javascript捕获此URL?如何将其存储到变量中,每当更改聚焦链接时,变量值将相应更新?我在网上搜了几个小时,到目前为止发现这个函数名为Document.activeElement.href ??但我不确定这是我需要的,如果是,我该如何使用呢?
请帮忙!
谢谢!!!
答案 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)
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方式。不确定这是否是您正在寻找的,基本上在焦点或鼠标悬停时更新当前链接。