2017-07-31 8 views
-1

テーブル内の最初のリンクを実際にクリックする2つのjavascriptコマンドがありますが、スクリプトはうまく動作しますが、これを1回実行して停止する。どうすればこれを達成できますか?javascriptコマンドを1回だけ実行する

<script> 
    $link = $('td a:first'); 
    $link[0].click(); 
</script> 
+6

上記のコードは、問題のリンクが同じドキュメントでない限り、ループしません。そうであれば、セカンダリ・ロードを実行していることを示すためにセッション・ストレージまたはローカル・ストレージなどが必要です。 –

+0

ループはどこですか? –

+0

問題のリンクは同じ文書にあるので、私はそれを無限ループから止める方法を知らないのです。 –

答えて

1

あなたはこのような何かを実行する必要があります:スクリプトです

function autoHandler(){ 
    var item = localStorage.getItem("turn"); 
    if(!item){ 
     localStorage.setItem("turn","1"); 
     $link = $('td a:first'); 
     $link[0].click(); 
    } 
    } 

     autoHandler(); 

https://jsfiddle.net/sozbepyd/

+0

なぜか分かりませんが、コードが私の場合には動作しません。ページが読み込まれた後、テーブルの最初のhrefをオートクリックしません。 –

+0

ダビング後にお試しいただけますか?それは動作するはずです。 また、このコードを再実行します。 localStorage.clear()を使用してローカルストレージをリセットします。 – Nitesh

0

これは役立つかもしれない - 私はおそらくから生じるループ動作が言及したと思われるものの質問内のスニペットは複数回呼び出されるため、ページ上の他のスクリプトアクティビティ(???)の結果である可能性があります。

<script> 
    window.flag = window.flag || true; 
    if (window.flag) { 
     $('td a:first')[0].click(); 
     window.flag = !window.flag; 
    } 
</script> 

私が言ったように、役に立たないかもしれない。 :) COMMENT

に照らして

EDITは、私は、ユーザーがブラウザのキャッシュをクリアしない限り、/まで持続しますwindow.sessionStorageではなくlocalStorageとしてwindow.localStorageを使用してお勧めします。その後のすべての訪問で永久にイベントを禁止するか、セッションごとに1回のみ動作を禁止するかどうかによって異なります。後者の場合、localStoragesessionStorageと置き換えてください。

local-sessionStorageはCookieのような機能なので、情報が保存されていることを訪問者に知らせることをお勧めします(Cookieとプライバシーポリシー)。

+0

コメントから、実際には同じページへのリンクです - ページをリロードします。 –

+0

ああ、OK。そして、@ Niteshの 'localStorage'ソリューションが優れています。 –

1

ローカル/セッションストレージが必要な理由がわかりません。

<script> 
    var $link = $('td a:first'); 
    if(window.location.href.indexOf($link.attr('href')) === -1) { 
     $link[0].click(); 
    } 
</script> 
+0

私はこのコードで私の問題を解決しました!どうもありがとう –

関連する問題