在bookmarklet中使用.length不起作用

时间:2015-03-24 07:17:02

标签: jquery firefox bookmarklet

我正在尝试从页面中获取打印到新选项卡的链接列表,但由于某些原因,当我在.length语句中检查if时,我的bookmarklet不起作用。我有另一个完美无缺的,但这个不会触发。

这是我目前的代码

javascript:(function(){
    $total=0;
    $data="";
    if($("td.normal a").length > 0){
        $("td.normal a").each(function(){
            if($total>0){
                $data = $data+"<br/>";
            }
            $data = $data+$(this).attr('href');
            $total++;
        });
    } else {alert("No links found");}
    myWindow = window.open("data:text/html," + encodeURIComponent(data),"_blank", "width=200,height=100");
    myWindow.focus();
})();

我尝试过以下操作,但它甚至无法正常工作

javascript:(function(){if($("td.normal a").length > 0){alert("Yes");}else{alert("No");}})();

但这确实

javascript:(function(){alert("Yes");})();

页面格式如此

<table class="premium" cellspacing="2" style="margin:auto;width:600px">
    <tr>
        <td class="normal titre ohidden" style="width:500px">FileName</td>
        <td class="normal titre" style="width:100px">Size</td>
    </tr>
    <tr>
        <td class="normal alg" style="padding-left:10px;overflow:hidden"><a href="http://www.example.com" title="Link to file">File Name</a></td>
        <td class="normal">835.20 MB</td>
    </tr>
    <tr>
        <td class="normal alg" style="padding-left:10px;overflow:hidden"><a href="http://www.example.com" title="Link to file">File Name</a></td>
        <td class="normal">851.20 MB</td>
    </tr>
</table>

任何人都可以看到可能出现的问题吗?到目前为止,我只在Firefox中测试过。

修改

我只是试图在另一个网站上运行代码,它工作正常,所以似乎只是我正在研究的网站以某种方式阻止它。我正在尝试从1fichier获取一个链接列表,其中一位同事用来向我发送“共享文件夹”中的文件,查看包含多个链接的页面需要很长时间才能导入到我的下载器中。

错误控制台正在向后吐Uncaught TypeError: undefined is not a function (anonymous function)

1 个答案:

答案 0 :(得分:0)

所以我设法使用一些基本的Javascript

javascript:(function(){
    var links = document.querySelectorAll("td.normal>a"), i;
    if(links.length>0){
        var data="";
        for (i = 0; i < links.length; i++) {
            if(i>0){data = data+"<br/>";}
            data = data+links[i].href;
        }
        myWindow = window.open("data:text/html," + encodeURIComponent(data),"_blank");
        myWindow.focus();
    } else {alert("No links found");}
})();

仍然不知道为什么它不起作用,但确实如此。