2015-03-24 4 views
0

Я пытаюсь получить список ссылок, напечатанных на новой вкладке со страницы, но по какой-то причине мой букмарклет не работает, когда я проверяю .length в инструкции if. У меня есть еще один, который отлично работает, но это просто не срабатывает.Использование .length в 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.

EDIT

Я просто попытался запустить код на другом сайте, и она отлично работает, так что, кажется, просто веб-сайт, я работаю над каким-то образом блокирует его. Я пытаюсь получить список ссылок из 1fichier, который использует мастер, чтобы отправлять мне файлы в «общую папку», и просмотр страницы с несколькими ссылками занимает много времени для импорта в мой загрузчик.

Консоль ошибки плюет назад Uncaught TypeError: undefined is not a function (anonymous function)

ответ

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");} 
})(); 

До сих пор не знаем, почему это не будет работать, но это делает.