2016-03-11 8 views
6

का उपयोग करके डबल क्लिक में क्लिक करें, मैं प्रत्येक पृष्ठ में आईडी का उपयोग कर रहा हूं, जब भी उपयोगकर्ता मेरी वेबसाइट में किसी अन्य पृष्ठ पर रीडायरेक्ट कर रहा हो, तो कुछ निश्चित दर पर पृष्ठ को स्क्रॉल करने के लिए। मेरी समस्या यह है कि उपयोगकर्ता को पृष्ठ को पिछले पृष्ठ पर रीडायरेक्ट करने के लिए ब्राउज़र के बैक बटन पर डबल क्लिक करने की आवश्यकता है, इस प्रकार जब भी उपयोगकर्ता ने ब्राउज़र बैक बटन पर क्लिक किया है तो ब्राउज़र के बैक बटन को डबल क्लिक करने की आवश्यकता है ..
धन्यवादब्राउजर बैक बटन एकल जावास्क्रिप्ट

उत्तर

0

लघु जवाब:

document.onmouseover = function() { 
 
    //User's mouse is inside the page. 
 
    window.innerDocClick = true; 
 
} 
 

 
document.onmouseleave = function() { 
 
    //User's mouse has left the page. 
 
    window.innerDocClick = false; 
 
} 
 

 
window.onhashchange = function() { 
 
    if (!window.innerDocClick) { 
 
    //Browser back button was clicked 
 
    window.history.go(-2); 
 
    } 
 
}

स्पष्टीकरण:

window.history ऑब्जेक्ट में ऐसे यूआरएल हैं जिन्हें उपयोगकर्ता ने ब्राउज़र में देखा है। window.history.go(x) फ़ंक्शन का उपयोग ब्राउज़र में इतिहास के सापेक्ष पृष्ठ पर जाने के लिए किया जाता है (इसलिए इस मामले में -2 पृष्ठ 2 वापस जाने के लिए)।

ब्राउज़र में बैक बटन दबाए जाने पर पता लगाने के लिए, मैंने त्वरित खोज की और "ब्राउज़र बैक बटन ईवेंट को कैसे खोजें - क्रॉस ब्राउज़र" के बारे में this question here का समाधान मिला। स्वीकार्य उत्तर के लिए एक बहुत पूर्ण और विस्तृत दृष्टिकोण है जिसे मैं उपर्युक्त स्निपेट प्राप्त करता था, जिसे आपको निश्चित रूप से पढ़ना चाहिए।

उपरोक्त स्निपेट के बारे में एक त्वरित अवलोकन, यह है कि यह पता लगाने के लिए 2 घटनाओं का उपयोग करता है कि उपयोगकर्ता का माउस पृष्ठ दस्तावेज़ में है या नहीं। यदि यह पृष्ठ दस्तावेज़ में नहीं है, तो इसका मतलब है कि उपयोगकर्ता किसी भी इन-पेज तत्वों जैसे हाइपरलिंक इत्यादि पर क्लिक नहीं करेगा, जो यूआरएल भी बदल सकता है। 'ऑनशैशचेंज' ईवेंट पता लगाता है कि स्थान हैश बदलता है, और फिर जांचता है कि उपयोगकर्ता का माउस दस्तावेज़ में है, और यदि नहीं तो डबल बैक बटन निष्पादित करता है।

कृपया ध्यान दें: यदि उपयोगकर्ता बैकस्पेस कुंजी दबाता है तो यह विधि शामिल नहीं होती है। स्वीकार्य उत्तर jQuery का उपयोग करके ऐसा करने की एक विधि को कवर करता है, ऐसा लगता है कि अगर jQuery नहीं चाहता है तो इसे वेनिला जावास्क्रिप्ट में काम करने के लिए संशोधित किया जा सकता है। यह विधि शायद आईपैड या अन्य टैबलेट और मोबाइल डिवाइस जैसे डिवाइस को कवर नहीं करती है क्योंकि उनके पास माउस ईवेंट नहीं हैं। इसके अलावा, मैक के ट्रैकपैड पर ईवेंट को स्वाइप करें, अधिकतर कवर नहीं किया जाएगा। इन उपकरणों को नहीं रखते, मेरे लिए परीक्षण करना असंभव है।

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