Userscript适用于Firefox,但Chrome提供:Uncaught TypeError:无法读取属性'length'的null

时间:2013-06-14 11:08:17

标签: javascript google-chrome cross-browser greasemonkey userscripts

我尝试在Chrome中运行this script,但它不起作用。

错误无法读取null 的属性'长度'。

if($("div.diashow").length>0&&$("div.diashow.list").length==0){

    jQuery.ajaxSetup({async:false});

    var objContent = $("#objectContent");

    $("span.prev").remove();
    $("span.next").remove();
    $("p.next").remove();

    $("div.screen img").unwrap();

    var numOfSlides = parseInt($("span.volume").text().substr(11));    

    for(var i=2;i<=numOfSlides;i++){

        $.get("document.URL"+"?_slideNumber="+i, function(data) {

            var slidesCanvas = $("div.slidesCanvas",data);

            $("span.prev",slidesCanvas).remove();
            $("span.next",slidesCanvas).remove();
            $("p.next",slidesCanvas).remove();

            $("div.screen img",slidesCanvas).unwrap();

            objContent.append(slidesCanvas);            
        });       
    }        
}

我试图自己修复它,但由于我有限的javascript知识,我没有成功。为什么此脚本无法在Chrome中运行?它适用于Firefox。

Sample target page for the script

1 个答案:

答案 0 :(得分:1)

That userscript使用@require来加载jQuery,这是一件好事 但是,直接Chrome不支持@require(Greasemonkey的奇妙功能也不多)。

因此,要在Chrome中按原样使用该脚本,明智的做法是安装并使用Tampermonkey 。与简单的Chrome用户相比,Tampermonkey具有许多优势,易用性,兼容性和功能。

如果您不想使用Tampermonkey,请重写脚本以使用this cross-browser technique for loading jQuery