क्या वेबपृष्ठ के भीतर जावास्क्रिप्ट में एक क्लिक अनुकरण करने के लिए दिए गए निर्देशांक का उपयोग करना संभव है?जावास्क्रिप्ट में एक्स, वाई निर्देशांक का उपयोग करके एक क्लिक को अनुकरण कैसे करें?
उत्तर
आप प्रेषण ईवेंट पर भेज सकते हैं, हालांकि यह वास्तविक क्लिक के समान नहीं है। उदाहरण के लिए, इसका उपयोग क्रॉस-डोमेन आईफ्रेम दस्तावेज़ को यह सोचने के लिए नहीं किया जा सकता है कि इसे क्लिक किया गया था।
सभी आधुनिक ब्राउज़र document.elementFromPoint
और HTMLElement.prototype.click()
का समर्थन करते हैं, कम से कम आईई 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
यह आश्चर्यजनक है !! ठीक वही जो मेरे द्वारा खोजा जा रहा था!!! = ओ – RadiantHex
क्या यह आईई और वेबकिट के साथ काम करता है? – RadiantHex
@RadiantHex: हां, वास्तव में आईई इसे लागू करने वाला पहला व्यक्ति था और यह आईई 6 पर वापस चला गया। क्रोम, फ़ायरफ़ॉक्स और सफारी 5 कार्यान्वयन ठीक हैं लेकिन सफारी 4 और ओपेरा गलत हैं (हालांकि व्यावहारिक)। Http://www.quirksmode.org/dom/w3c_cssom.html#documentview देखें। –
सुरक्षा कारणों से, आप जावा पॉइंटर को जावास्क्रिप्ट से नहीं ले जा सकते हैं, न ही इसके साथ एक क्लिक अनुकरण कर सकते हैं।
क्या आप इसे पूरा करने की कोशिश कर रहे हैं?
@Aicule: मुझे बताने के लिए धन्यवाद! मैं प्रश्न में थोड़ी सी जानकारी जोड़ूंगा। मैं बस प्रयोग कर रहा हूं, वास्तव में उत्पादक कुछ नहीं =) – RadiantHex
क्रोम और सफारी में, आप एक विशिष्ट एक्स, वाई स्थिति पर एक क्लिक को आग लगा सकते हैं। इस प्रकार [यह डेमो] (http://thdoan.github.io/magnify/demo-map.html) काम करता है। फ़ायरफ़ॉक्स एकमात्र ब्राउज़र है जहां यह विफल रहता है, इसलिए शायद यह एक फ़ायरफ़ॉक्स-विशिष्ट सुरक्षा नीति है। – 10basetom
सत्य नीचे दिए गए उत्तर में है, 'createEvent() '+' initMouseEvent() ' – Valer
हाँ, आप एक माउस क्लिक एक ईवेंट बनाने और इसे भेजने से अनुकरण कर सकते हैं:
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। मुझे लगता है कि .click()
का jQuery का कार्यान्वयन सही काम करता है लेकिन पुष्टि नहीं हुई है।
यह केवल torazaburo's answer है, जो 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);
}
आपका लक्ष्य क्या है? :) क्या आप उदाहरण के लिए एक छवि मानचित्र पर एक क्लिक अनुकरण करने की कोशिश कर रहे हैं? –