8

jquery を使用してhttp://translate.google.comでクリック イベントをシミュレートしようとしています。その目的のために、次のコードで jquery ファイルをロードしました。

var script = document.createElement("script");
script.src = "http://code.jquery.com/jquery-1.10.1.min.js";
document.body.appendChild(script);

次に、次のように、セレクターを使用して要素のクリックをシミュレートしようとしています。

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("mousedown")

マウスダウンの代わりにこのクリックイベントも試しました:

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("click")

それらのどれも、div を手動でクリックする効果、つまり新しい div を開く効果はありません。望ましい動作のssを添付しました。

クリックされた状態

jqueryが動作しない原因は何ですか? または、他の方法で効果をシミュレートするにはどうすればよいですか?

編集:jQueryメソッドを使用して要素を選択し、それらの内容を変更できるという意味で、jQueryの追加は成功しているようです.

4

1 に答える 1

12

解決策は、次のように、MouseEvent を作成して要素にディスパッチすることでした。

var e1 = document.createEvent("MouseEvents");
e1.initMouseEvent("mousedown", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
jQuery('#gt-sl-gms')[0].dispatchEvent(e1)

この情報は確認していませんが、jQuery のイベント メカニズムは、リスナー関数をトリガーできないため、別のディスパッチ システムを使用しているようです。

于 2013-09-05T08:37:37.957 に答える