मैं एक सरल वेब पेज, अर्थात् है:किसी भिन्न डोमेन पर किसी पृष्ठ से वापस जाने पर फ़ायरफ़ॉक्स ईवेंट को फ़ायरफ़ॉक्स कैसे प्राप्त करें?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>History hacks</title>
<script>
window.onpopstate = function (e) {
alert("location: " + document.location + ", state: " + JSON.stringify(e.state));
}
window.onload = function (e) {
alert('page loaded');
}
</script>
</head>
<body>
<p> <a href="http://www.yahoo.com">Yahoo</a> <a href="#part1">Part 1</a></p>
</body>
</html>
अब के बारे में कैसे Chrome और Firefox popstate घटना ट्रिगर (मुझे लगता है कि क्या मैं जब मैं चारों ओर करने के लिए मिल के खिलाफ हूँ कंपकंपी मतभेद के एक नंबर रहे हैं परीक्षण आईई), लेकिन जो मुझे यहां समस्याएं दे रहा है वह यह है कि क्रोम एक पॉपस्टेट ईवेंट ट्रिगर करेगा जब भी मैं उन दो लिंक में से किसी एक पर क्लिक करता हूं, और फिर जब मैं बैक बटन दबाता हूं। फ़ायरफ़ॉक्स उस लिंक के लिए ईवेंट ट्रिगर करेगा जो हैश भाग को बदलता है (केवल पहली बार हैश लिंक समान है), और यदि मैं याहू लिंक पर क्लिक करता हूं और फिर बैक बटन पर क्लिक करता हूं तो इसे ट्रिगर नहीं करेगा।
तो क्या कोई तरीका है कि मैं फ़ायरफ़ॉक्स में बता सकता हूं कि उपयोगकर्ता ने अभी वापस क्लिक किया है और एक अलग डोमेन पर पूरी तरह से अलग साइट से अपने पृष्ठ पर वापस उतर लिया है? क्या कोई और घटना है जो फ़ायरफ़ॉक्स में इस उद्देश्य के लिए काम करेगी? (जब मैं yahoo.com से वापस जाता हूं तो लोड इवेंट ट्रिगर नहीं होता है।)
यह बताया गया हो कि इतिहास एपीआई एक ही क्रॉस प्लेटफॉर्म काम करने के लिए के लिए एक महान जवाब ओपी के है, लेकिन यह वास्तव में उत्तर नहीं देता प्रश्न:। ** कैसे करता है, तो उपयोगकर्ता वास्तव में "वापस" पेज पर खत्म करने के लिए क्लिक बताने के लिए ** अपने उदाहरण का उपयोग करना, आप बता सकते हैं कि उपयोगकर्ता क्रोम और सफारी में वापस क्लिक किया क्योंकि mytag onpopstate हैंडलर में रिक्त नहीं हो जाएगा । फ़ायरफ़ॉक्स में हालांकि, onpopstate नहीं बुलाया जाता है तो वहाँ उपयोगकर्ता पृष्ठ पर या अगर यह एक पहली बार यात्रा है लौटा रहा है, तो यह निर्धारित करने के कोई रास्ता नहीं हो रहा है। तो क्या वास्तव में फ़ायरफ़ॉक्स में इसे अलग करने का कोई तरीका है? – Karmacon
@ कर्म: यदि आप bfcache को अक्षम करते हैं (मेरे उत्तर का अंतिम भाग देखें) तो फ़ायरफ़ॉक्स को क्रोम के समान व्यवहार करना चाहिए। लेकिन यदि आप Chrome की व्यवहार करने के लिए Firefox के पेज कैश को प्राथमिकता देनी चाहिए का एक अच्छा उदाहरण के लिए पढ़ने के बोरिस Zbarsky का जवाब। –
धन्यवाद @ सेन होगन। बाद फ़ायरफ़ॉक्स bfCaching पर एक फिर से पढ़ा है, मुझे एहसास हुआ कि यह अपनी साइट पर काम नहीं करता है, क्योंकि हम https का उपयोग। फ़ायरफ़ॉक्स हमेशा पृष्ठ को रीफ्रेश करता है। मुझे लगता है कि मैं इसके बारे में कुछ भी नहीं कर सकता। – Karmacon