2016-07-01 9 views
2

コールリスナーだけでなく、ユーザーがマウスを使っているように、JavaScriptを使用して要素を起動したいと考えています。 私はGoogle、Stack ...、Mozillaで多くを検索していますが、それは不可能ですが、それを行う方法が必要です^^ Mozillaで高度なオプションを検索して、<a>要素をクリックして起動するJavaScript

<a href="www.mysite.com" id="MyIdElement">Click here</a> 
$('#MyIdElement').trigger('click'); 

または

document.getElementById('MyIdElement').click() 

私はMozillaのJavaScriptのクリックイベントを許可しないことを知っている:それは、私は

私はwouldlike実ユーザクリックのように動作するコードは何も

を発見しました <a> e lement: https://developer.mozilla.org/en/docs/Web/API/HTMLElement/click

The click() method will not cause an <a> element to initiate navigation as if a real mouse-click had been received.

は、私は、Mozilla以外のブラウザを使用して自由です。私の最終目標は、ブラウザのアドオン私が正しくあなたを理解していれば、これはリファラのよう

おかげ

+0

$( '#MyIdElement')。trigger( 'click'); Chromeで動作します。 – Valerio

+0

@ValerioこれはMozillaでは動作しません。 Chromeでは、これは実際のユーザーのクリックのように実行されますか? – dada17xs

答えて

1

次のスクリプトを使用して、domエレメント上でイベントマウスのクリック(またはその他)を直接シミュレートすることができます。これは、ユーザーがリンクをクリックする方法をシミュレートします。

ライブたとえば、あなたのリンクをクリックして注意してくださいとすぐにあなたのページの負荷として実行されます。 https://jsfiddle.net/pogdmb3m/

これはChromeとFirefoxの(その制限を一周)で動作します。

var _triggerMouseEvent = function(node, eventType) { 
    // create a syntetic mouse event 
    var clickEvent = document.createEvent('MouseEvents'); 
    clickEvent.initEvent(eventType, true, true); 
    // dispatch event on your dom element 
    node.dispatchEvent(clickEvent); 
}; 

var elmDom = document.getElementById('MyIdElement'); 

_triggerMouseEvent(elmDom, 'click'); 
+0

@ dada17xsセキュリティ上の理由からIMO。しかし、私はどんなドキュメンテーションでも参照を見つけることができませんでしたので、塩の粒でそれを取る。 – GibboK

1

をするすべての情報を送信していないので、どのwindows.location.hrefで実際のユーザーのようなWebページ絶対にに移動し、ないようにすることです"a"要素をクリックしたときにJavaスクリプト関数をトリガーしたいとします。次のコードを使用すると、「a」要素をクリックしてGoogleサイトを読み込むときにアラートが生成されます。

<!DOCTYPE html> 
<html lang="de"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>Test</title> 
    <script> 
     function myFunction(){ 
      window.alert("Test"); 
      }; 
    </script> 
    </head> 
    <body> 
    <a href="http://google.com" onclick="myFunction()">Go to Google</a> 
    </body> 
</html> 

全体のものは、このコードブロックonclick="myFunction()"を介して実行され、それは単にクリックで定義された関数を実行します。私はこれがChromeとIEで動作していると確信しています。あなたの質問が間違っているとわかったら、私を修正してください。私は正しく答えるよう努力します。

関連する問題