क्या किसी वेबपृष्ठ में जावास्क्रिप्ट में क्लिक पर अनुकरण करने के लिए दिए गए निर्देशांक का उपयोग करना संभव है?
क्या किसी वेबपृष्ठ में जावास्क्रिप्ट में क्लिक पर अनुकरण करने के लिए दिए गए निर्देशांक का उपयोग करना संभव है?
जवाबों:
आप एक क्लिक घटना भेज सकते हैं , हालांकि यह एक वास्तविक क्लिक के समान नहीं है। उदाहरण के लिए, यह क्रॉस-डोमेन iframe दस्तावेज़ को यह सोचने के लिए इस्तेमाल नहीं किया जा सकता कि इसे क्लिक किया गया था।
सभी आधुनिक ब्राउज़र समर्थन करते हैं document.elementFromPoint
और HTMLElement.prototype.click()
कम से कम IE 6, फ़ायरफ़ॉक्स 5, क्रोम के किसी भी संस्करण और शायद सफारी के किसी भी संस्करण के बारे में आपकी देखभाल करने की संभावना है। यह लिंक का भी अनुसरण करेगा और फॉर्म जमा करेगा:
document.elementFromPoint(x, y).click();
https://developer.mozilla.org/En/DOM:document.elementFromPoint https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
हां, आप एक ईवेंट पर क्लिक करके और उसे भेजकर माउस क्लिक का अनुकरण कर सकते हैं:
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()
सही काम करता है लेकिन इसकी पुष्टि नहीं हुई है।
$.click()
initMouseEvent
पदावनत कर दिया गया है: developer.mozilla.org/en-US/docs/Web/API/MouseEvent/…
initMouseEvent
आप इसका उपयोग कर सकते हैं var event = new MouseEvent( "click", { clientX: x, clientY: y, bubbles: true } )
यह भी stackoverflow.com/a/36144688/384670 में दिखाया गया है ।
यह सिर्फ Torazaburo का जवाब है , जिसे एक माउसइवेंट ऑब्जेक्ट का उपयोग करने के लिए अद्यतन किया गया है।
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);
}
यह मेरे लिए काम नहीं करता है लेकिन यह कंसोल को सही तत्व प्रिंट करता है
यह कोड है:
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);
console.log(el); //print element to console
el.dispatchEvent(ev);
}
click(400, 400);
सुरक्षा कारणों से, आप माउस पॉइंटर को जावास्क्रिप्ट के साथ स्थानांतरित नहीं कर सकते हैं, न ही इसके साथ एक क्लिक का अनुकरण कर सकते हैं।
यह क्या है जिसे आप पूरा करने की कोशिश कर रहे हैं?
createEvent()
+initMouseEvent()