2016-06-29 22 views
0
var n = 0; 

function search() { 
    if (document.getElementById('post-6386_119125') == null) { 
     if (document.getElementById('show_more_link')) { 
      document.getElementById('show_more_link').click(); 
     } 
     window.scrollTo(0, document.body.scrollHeight); 
     console.log('n is now ' + n); 
    } else { 
     document.getElementById('post-6386_119125').scrollIntoView() 
     n = 1; 
     console.log('horray,n is now ' + n) 
    } 
} 

while (n == 0) { 
    search() 
} 

ソーシャルネットワークのニュースページに特定の投稿を探し、それが現在存在しない場合は、ページをスクロールしてプッシュしますそれが存在する場合は、「次を表示」ボタンjs 'whileループはコードを内部で実行しません

だから私はコンソールに行って、ループの前にすべての行を数回貼り付ける - それはすべてうまくいくが、ループでは何も起きていないし、コンソールは無限の数になる'nは今や0です。' 私はjsを初めて使っていて、JQueryの疫病もありますので、私は非常に基本的なものを見逃しているかもしれません。

+0

'n'は最初のifブロックで変更されないので、' document.getElementById( 'post-6386_119125')== null'の場合、search()は再帰的に呼び出され続けます。 – fotijr

+0

'#post-6386_119125'を決してDOMに追加しないので、' if'文は常に真です。 – 4castle

+0

はい、ただし、nは 'else'ブロックで変更されます。これは、プロックを停止する必要がある点です。 – orlovskiy

答えて

0
document.getElementById('post-6386_119125')==null 

これは常にtrueです。

+0

document.getElementById( 'post-6386_119125')== null'(投稿が到着したとき!= 0) – orlovskiy

関連する問題