プログラムでJavaScriptを使用してリンクをクリックするにはどうすればよいですか?


回答:


237
document.getElementById('yourLinkID').click();

18
実際、これまでのところ、IE、Safari、Chrome、Firefox、Operaなど、私が試したすべてのブラウザーで動作しました。
arik

5
リンクにtarget="_blank"プロパティがある場合、ブラウザのポップアップブロッカーが新しいウィンドウでアクティブになることに注意してください。
wonsuc

45

この機能は、少なくともFirefoxおよびInternet Explorerで機能します。リンクに接続されているイベントハンドラーを実行し、イベントハンドラーが既定のアクションをキャンセルしない場合は、リンクされたページを読み込みます。

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}

5
Matthewは正解です。その理由については、stackoverflow.com / questions / 809057 / に詳しい情報があります。クロスブラウザは楽しいです:)
Dan F

4
それはtarget属性を尊重しないか、または<base target="frame">
Vitim.us

38

現在のページアドレスのみを変更する場合は、JavaScriptで次のように変更するだけです。

location.href = "http://www.example.com/test";

53
ユースケースに対処するのではなく、ユースケースの周りで答える答えが嫌いなので、投票は拒否されました。「私はこれがあなたの意図だと思いますが、あなたの制約に気づいていません。そのため、概念的な真空の概念的な球では、これを使用してください。」
cazlab 2012

11
mailto:userjsスクリプトのリンクをクリックするための素晴らしいソリューションを探していたので、私は賛成票を投じました。間違いなく時間を節約できました。私は作成するために用意したa要素を、いくつか「プログラム的なクリック」することstackoverflow.com/questions/809057/...
AD

6
私もclick()他に提案されているメソッドを呼び出してみましたが、IE9では機能しませんでしたが、location.href実際にはmailto:リンクからメールが送信されました。素晴らしい解決策!
ajeh

このメソッドはPyQT4で役立ちました。click()呼び出しが機能しませんでした。ありがとう!
VilleLipponen

リンクをクリックしたいという質問にある私のユースケースには対応していません。リンクはどこにもつながりませんが、クリックイベントに関連する他のものがあります。場所を変えたくない。
ランダムエレファント

17

単にそれが好きです:

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

またはページ読み込み時:

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>

2
はい。しかし、他のクリックが発生する必要があります。
オラフルWaage

2
ページの読み込みなどのイベントではそれを実行できませんか?
トカゲに請求する

2
ヘルプに感謝しますが、Firefox 3を使用していて、機能しません。エラーコンソールでは、Error:document.getElementById( "myLink")。click is not a function

Firefoxはクリックメソッドをサポートしていないようです。そして私のものを含むほとんどの回答は
役に立た

@Canavar:クリックの代わりにクリックを試してください
ステファンシュタイガー

9

リンクをクリックするjQueryの方法は

$('#LinkID').click();

mailToリンクの場合、次のコードを記述する必要があります

$('#LinkID')[0].click();

2
これは機能しません。これは、彼が尋ねた質問に対する回答ではありません。私がさらにいくつかのポイントを持っている場合、私はこれに否定を与えたでしょう。

2
これは動作しませんか?試してみましたか?「LinkID」の意味をご理解いただければ幸いです。今日の誰かがjQueryなしでjsを実行するのに十分に遅れている場合、私は本当に驚きます。とにかく、いくつかのポイントを獲得した後、気軽に反対票を投じてください
Muhammad Waqas Iqbal 2016

3
私はこれを試しましたが、mailToリンクがReact Nativeでは機能しません。これを使用してください:window.location.href = "mailto:address@gmail.com";
fungusanthrax 2017年

4
これは、aリンクをクリックしても機能しませんでした。[0].click()私はそれがdocument.getElementById('yourLinkID').click();答えと同じだと私は信じているバージョンを使用して動作します。
うーん2018

Firefoxブラウザー:これは<input>では機能しますが、<a>では機能しません
jimver04 '30

2

私にとっては、なんとかそのように機能させることができました。私は5000ミリ秒で自動クリックを展開し、1000ミリ秒後にループを閉じました。その後、自動クリックは1回しかありませんでした。

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>

2

上記のメソッドの多くは廃止されています。ここにあるコンストラクタを使用することをお勧めします

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

これによりアンカータグがクリックされますが、ポップアップブロッカーがアクティブかどうかは表示されないため、ユーザーはポップアップを許可する必要があります。


3
イベントが2度設定される理由がわかりません。event = new CustomEvent( 'click');の方法がわかりません。参照イベントなので、varのポイントは何
ですか

私はあなたが正しい履歴スタンプだと思います。彼はマウスイベントを作成し、すぐに新しいイベントで上書きします。
ジョンロード

1

クリックする代わりに、Javascriptを使用してクリックするURLに転送できますか?

多分あなたはあなたが望む場所に行くために身体の何かにロードすることができます。


「タグ」リンクを扱っているときにボタンの情報を自然に検索することはないため、両方の質問に投稿しました。それらは技術的に無関係です。
Scott Tovey

1

それらを別のページにリダイレクトするだけです。文字通りリンクをクリックしてそこに移動することは実際には不必要に思えますが、私は全体の話を知りません。


2
私の場合、リンクのターゲットが "_blank"かどうかわからないので、location.hrefとwindow.openのどちらを使用する必要があるのか​​わかりません。クリックをディスパッチする方が短いです。使用例があります。たとえば、modalboxを開くようなイベントを発生させたい場合があります。
dxvargas

-2

ユーザーのマウスに何かをさせることはできません。しかし、イベントがトリガーされたときに何が起こるかを完全に制御できます。

あなたができることは、身体負荷をクリックすることです。W3Schoolsはここに例があります。


6
@Neolitとにかく404になる前に、それは悪いリンクでした。損失なし。
John Dvorak

-2

自動的にリンクをクリックするクライアント側のJS関数...

サーバーから渡されたエラーを保持する非表示フォーム入力の値を確認する例を次に示します。次に、クライアント側のJSがその値を確認し、指定した別の場所にエラーを入力します。ポップアップログインモーダルの場合。

var signUperror = document.getElementById('handleError')

if (signUperror) {
  if(signUperror.innerHTML != ""){
  var clicker = function(){
    document.getElementById('signup').click()
  }
  clicker()
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.