我正在开发一个小的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页面顶部的更新(带有地球图像)和文件(带有文件夹图像)链接时,代码完全正常
答案 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而不是$