无法获取点击元素的网址和文本

时间:2014-04-05 20:13:05

标签: javascript jquery html html5

我正在开发一个小的firefox扩展,它需要检测每个点击的url,然后保存url和相应的文本。换句话说,我想存储所有网址和相应的文本,这会导致页面更改或某种网络活动。

我正在使用的jquery代码

$('*').click(function(){
    var url = this.href;
    if(url!=undefined){
        console.log(url+ "   " + this.text);
    }
});

此代码在大多数情况下都能正常运行,但是当我尝试在Evernote,Box.com,Dropbox等网站上获取链接时,它根本无法正常工作。我无法理解这个原因。例如,在box.com上,如果我点击任何文件,上面的代码也无法返回我在Dropbox中的网址和文字以及非常相似的情况。

我使用的代码有一些限制吗?任何帮助/想法表示赞赏。

修改

对于一个盒子文件,在Firebug检查元素时,我得到了

<a data-validate="filename not_empty_item_type" data-behavior="edit_in_place" data-item_type="folder" data-item_id="1816357023" data-field="name" data-url="/index.php?rm=box_files_update_item_info" class="item_link item_name_text edit_in_place item_name dnd" href="/files/0/f/1816357023/public_test">public_test</a>

确实有&#39; href&#39;。

用于测试它的link框。

当我点击box.com页面顶部的更新(带有地球图像)和文件(带有文件夹图像)链接时,代码完全正常

1 个答案:

答案 0 :(得分:1)

如何加载脚本?我的意思是,也许它是一个明显的答案,但你的代码使用Jquery。许多网站实际上都使用它,因此您的代码可以运行。但是例如dropbox不使用它,因此它永远不会工作。

编辑:

将您的脚本放入文档中。准备好的功能我尝试了这个,它让我得到了URL。

$( document ).ready(function() {

如果遇到一些问题,请尝试使用noConflict模式,如;

 jQuery( document ).ready(function() {

更新2

我是如何找到的: 我只是用我的浏览器控制台。而&#34;执行&#34;你的脚本,它收到了一个错误。

TypeError: Cannot read property 'click' of null

这意味着DOM还没有准备好。或者,还没有实际测试过它。可能是Jquery发生了冲突。因此使用Jquery而不是$