7

मैंने क्रोम के डेवलपर टूल्स में "एमुलेट टच इवेंट्स" विकल्प सक्षम किया है। मैंने एक सरल परीक्षण प्रोग्राम स्थापित किया जो अलर्ट करता है जब मैं <div> स्पर्श करता हूं। कार्यक्रम मेरे गैलेक्सी नेक्सस पर ठीक काम करता है, लेकिन जब मैं क्रोम में <div> पर क्लिक करता हूं, यहां तक ​​कि "अनुकरण टच इवेंट्स" विकल्प सक्षम होने के साथ भी कुछ भी नहीं होता है। कोई सुझाव? क्या मैं इस उपकरण का सही ढंग से उपयोग कर रहा हूं?क्रोम "एम्यूलेट टच इवेंट्स" काम नहीं कर रहा

यहां मेरा कोड है - कुछ भी फैंसी नहीं है।

<!DOCTYPE html> 
<html lang="en"> 
<head>  
    <style type="text/css"> 
     #main_div 
     { 
      position: absolute; 
      width: 50px; 
      height: 20px; 
      background-color: red; 
      top: 50%; 
      left: 20px;    
     }   
    </style> 
    <script type="text/javascript"> 
     function init() 
     { 
      main_div = document.getElementById("main_div");    
      main_div.ontouchstart = function() 
      {      
       alert("here"); 
      }        
     } 
    </script> 
</head> 
<body onload="init()"> 
    <div> 
     <p id="x">hello</p> 
     <p id="y"></p> 
    </div> 
    <div id="main_div"> 
     hello 
    </div> 
</body> 
</html> 
+0

मैं संस्करण 19.0.1084.56 चला रहा हूं। –

+0

क्या आपको मौका मिला है कि पृष्ठ ज़ूम इन/आउट हो गया है? क्रोम में इवेंट निर्देशांक (माउस के लिए दोनों और इसके परिणामस्वरूप, स्पर्श करें) ज़ूम और पेज लेआउट के आधार पर राशि से बंद होने के लिए जाने जाते हैं। नतीजतन, आप लक्ष्य div लंबवत "गायब" हो सकते हैं। –

+0

मैंने अपने ज़ूम स्तर की जांच की - मैं मानक ज़ूम पर हूं। मैं उम्मीद करता हूं कि क्रोम सिर्फ मेरे निर्देशांक को गलत तरीके से पढ़ रहा है, लेकिन हां, इसका कोई फायदा नहीं हुआ है। सलाह के लिये धन्यवाद। –

उत्तर

11

मुझे क्या रुका हुआ था कि "अनुकरण स्पर्श घटनाओं" चेकबॉक्स की जांच के अलावा, आपको ओवरराइड सक्षम करने के लिए मास्टर "सक्षम" चेकबॉक्स भी होना चाहिए। एक बार दोनों की जांच हो जाने के बाद, यह ठीक काम किया।

enter image description here

+0

यह सक्षम चेकबॉक्स काफी नया होना चाहिए। मैंने इसे पहले इस्तेमाल किया है और इसे नहीं देखा है। – aslakjo

+0

मुझे लगता है कि यह क्रोम 30 के साथ दिखाई दिया। – Prinzhorn

+0

ग्रेट। यह विंडोज एक्सपी पर क्रोम 30.0.1599.101 के साथ काम किया। –

1

क्या आप जिस कोड को आजमाया है, उसे साझा कर सकते हैं? यहाँ एक नमूना कोड है कि मेरे साथ काम किया दोनों iPhone और क्रोम 19 पर

<head> 
<script> 
function listen(elem, evnt, func) { 
    if (elem.addEventListener) // W3C DOM5.   
    elem.addEventListener(evnt,func,false); 
    else if (elem.attachEvent) { // IE DOM7.   
    var r = elem.attachEvent("on"+evnt, func); 
    return r; 
    } 
} 

function attachListeners() { 
var touch_div = document.getElementById('touch_me'); 
listen(touch_div,'touchmove', function(event) { 
    touch_div.innerHTML="being touched " + event.targetTouches.length; 
    touch_div.style.background =green; 
}, false); 
listen(touch_div,'touchstart', function(event) { 
    event.preventDefault(); 
    touch_div.innerHTML="touchstart"; 
    touch_div.style.background ='green'; 
}, false); 
listen(touch_div,'touchend', function(event) { 
    touch_div.innerHTML="thanks!"; 
    touch_div.style.background ='#CCFF66'; 
}, false); 
listen(touch_div,'click', function(event) { 
    touch_div.innerHTML="hey - touch, not click!"; 
    touch_div.style.background ='red'; 
}, false); 
listen(touch_div,'onmouseup', function(event) { 
    touch_div.innerHTML="hey - that was a click!"; 
    touch_div.style.background =''; 
}, false); 
} 

function run_onload() { 
attachListeners(); 
} 

</script> 

</head> 
<body onload="run_onload()"> 
<div id="touch_me">Touch me!</div> 
</body> 
+0

टिप्पणी के लिए धन्यवाद, लेकिन यहां तक ​​कि इस उदाहरण में, क्रोम मेरे क्लिक को वास्तविक माउस क्लिक के रूप में व्याख्या करता है और स्पर्श के रूप में नहीं। –

3

टच घटनाओं क्रोम संस्करण 21 (पिछले संस्करणों के बारे में निश्चित नहीं) में काम करते हैं, लेकिन आप के लिए आदेश में खुला डेवलपर उपकरण खिड़की रखने के लिए है, स्पर्श घटनाओं को होने के लिए। यदि आप विंडो बंद करते हैं तो आप सामान्य माउस ईवेंट पर वापस जाएंगे।

+0

स्रोत? क्या आपने इसे स्वयं अनुभव किया? – nalply

+0

यह मेरे लिए उसी तरह काम करता है –

+0

"यह सुविधा, कई अन्य ओवरराइड की तरह ही काम करेगी, जबकि देवतुल्स खुले हैं।" स्रोत: https://developers.google.com/chrome-developer-tools/docs/mobile-emulation#emulate-touch-events –

2

एक महत्वपूर्ण मुद्दा यह है कि मैंने देखा है - जाँच हो रही है "स्पर्श घटनाओं अनुकरण" नहीं अक्षम माउस घटनाओं करता है, यह केवल के साथ-साथ एक स्पर्श कहते हैं।

+0

क्या आप स्पर्श घटनाओं को अनुकरण करते समय माउस ईवेंट को अक्षम करने के तरीके के बारे में जानते हैं। – TankorSmash

+0

मुझे नहीं लगता कि क्रोम में ऐसा करने का एक आसान तरीका है - केवल उन्हें पकड़ना और रोकथाम करना, रोकना, रोकना, रोकना इमिग्रेट्रेटप्रॉपेशन इवेंट पर ... हालांकि यहां तक ​​कि मैं सकारात्मक नहीं हूं, उन सभी को पहले पकड़ लेगा। – Ledivin

+0

ऐसा इसलिए है क्योंकि इस तरह टच इवेंट्स काम करते हैं। वे क्लिक घटनाओं के शीर्ष पर अतिरिक्त परतें जोड़ते हैं। स्पर्श सक्षम होने पर क्लिक ईवेंट को अक्षम करना मतलब होगा कि वास्तविक डिवाइस पर चीजें कैसे काम करती हैं, इसकी तुलना में इम्यूलेशन परत टूटा जाएगा। – Garbee

0

केवल बात यह है कि मेरे लिए काम कर रहा है अनुकरण टच घटनाक्रम क्रोम 45 में अनुकरण> सेंसर में हर बार पृष्ठ पुनः लोड है पाया टॉगल करने के लिए है। यह एक बहुत क्रोधित समाधान है। उम्मीद है कि किसी को कम परेशान करने वाला फिक्स मिल जाएगा।

enter image description here

संबंधित मुद्दे