Webページ内のJavaScriptでクリックをシミュレートするために、指定された座標を使用することは可能ですか?
clickイベントをディスパッチできますが、これは実際のクリックとは異なります。たとえば、クロスドメインのiframeドキュメントをだましてクリックされたと思わせることはできません。
少なくともIE 6、Firefox 5、あらゆるバージョンのChromeおよびおそらくあらゆるバージョンのSafariを使用するため、最新のブラウザはすべてdocument.elementFromPoint
およびHTMLElement.prototype.click()
をサポートしています。リンクをたどってフォームを送信することもできます:
document.elementFromPoint(x, y).click();
https://developer.mozilla.org/En/DOM:document.elementFromPointhttps://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/クリック
はい、イベントを作成してそれをディスパッチすることにより、マウスクリックをシミュレートできます。
_function click(x,y){
var ev = document.createEvent("MouseEvent");
var el = document.elementFromPoint(x,y);
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
x, y, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}
_
要素でclick
メソッドを使用することに注意してください-広く実装されていますが、標準ではありません。 PhantomJS。 jQueryの.click()
の実装は正しいことをしていると思いますが、確認していません。
これは torazaburoの答え であり、MouseEventオブジェクトを使用するように更新されています。
function click(x, y)
{
var ev = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true,
'screenX': x,
'screenY': y
});
var el = document.elementFromPoint(x, y);
el.dispatchEvent(ev);
}
セキュリティ上の理由から、JavaScriptを使用してマウスポインターを移動したり、クリックをシミュレートしたりすることはできません。
あなたが達成しようとしていることは何ですか?