Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让jQuery在Jetpack中工作_Javascript_Jquery_Firefox Addon_Firefox Addon Sdk - Fatal编程技术网

Javascript 让jQuery在Jetpack中工作

Javascript 让jQuery在Jetpack中工作,javascript,jquery,firefox-addon,firefox-addon-sdk,Javascript,Jquery,Firefox Addon,Firefox Addon Sdk,我正在试验Jetpack,我想解析一个给定html页面中的所有年份,然后用指向Wiki页面的链接来包装年份。我在jquery中尝试了这段代码,但现在我在Jetpack中使用它,它给出了一个错误$(doc)。replace不是一个函数。我绝对是Jquery/Jetpack的新手,所以可能我错过了一些非常简单的东西,但非常感谢您的帮助 编辑:我尝试过这些建议,但我还是被卡住了。奇怪的是 JQuery函数可以工作: (function($) { $.fn.clickUrl = function

我正在试验Jetpack,我想解析一个给定html页面中的所有年份,然后用指向Wiki页面的链接来包装年份。我在jquery中尝试了这段代码,但现在我在Jetpack中使用它,它给出了一个错误$(doc)。replace不是一个函数。我绝对是Jquery/Jetpack的新手,所以可能我错过了一些非常简单的东西,但非常感谢您的帮助

编辑:我尝试过这些建议,但我还是被卡住了。奇怪的是

JQuery函数可以工作:

(function($) {
    $.fn.clickUrl = function() {  
            var regexp = /([1-2][0-9][0-9][0-9])/gi;
            this.each(function() {
            $(this).html(
                  $(this).html().replace(regexp,'<ahref=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>')
            );
        });
    return $(this);
    }
})(jQuery);
(函数($){
$.fn.clickUrl=function(){
var regexp=/([1-2][0-9][0-9][0-9])/gi;
这个。每个(函数(){
$(this.html)(
$(this.html().replace(regexp,$1'))
);
});
返回美元(此);
}
})(jQuery);
基本上,我想把这个功能移植到Jetpack上

这是我的JQuery函数到Jetpack的“旧”非工作端口:

jetpack.statusBar.append({  
    html: "Hyperlink Years",  
    width: 80,  
    onReady: function(widget){  
        $(widget).click(function(){  
        var regexp = /([1-2][0-9][0-9][0-9])/gi;
        var doc = jetpack.tabs.focused.contentDocument;
            $(doc).each(function() {
            $(this).html(
                    $(doc).replace(regexp,'<a href=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>'));
            });
       return $(doc); 
     });  
   }  

});
jetpack.statusBar.append({
html:“超链接年”,
宽度:80,
onReady:函数(小部件){
$(小部件)。单击(函数(){
var regexp=/([1-2][0-9][0-9][0-9])/gi;
var doc=jetpack.tabs.focused.contentDocument;
$(doc).每个(函数(){
$(this.html)(
$(doc).replace(regexp,$1');
});
返回美元(doc);
});  
}  
});

我对jetpack不太熟悉,但您的jquery似乎相当混乱

如果“doc”是一个HTML文档,那么执行$(doc).each()实际上没有意义。它只会循环一次,“this”与doc相同

然后稍后您将执行$(doc).replace(regexp,…),但replace()不是jquery函数。您可能希望执行.html().replace(regexp,…);但是,我不建议这样做,因为这样做是行不通的——您只会替换文档中的任何数字,即使它们是另一个URL或页面HTML的一部分

有关更多信息,请参阅此问题或google For jquery文本节点: