2013-06-25 12 views
6

के साथ एक लिंक का पालन करते समय मैं वेबलिंक्स का पालन करते समय HTML5 सत्र स्टोरेज के विभिन्न व्यवहार देखता हूं। कभी-कभी पहले पृष्ठ का सत्र स्टोरेज लक्ष्यपेज पर कॉपी किया जा रहा है, कभी-कभी मुझे लक्ष्यपेज पर एक खाली सत्र स्टोरेज मिलता है।नया विंडो पर सत्रस्टोर खाली नहीं है, लक्ष्य = "_ खाली"

क्या कोई मुझे समझा सकता है, ऐसा क्यों है?

नीचे दिए गए लिंक को देखते हुए:

<a href="TargetPage.html" target="_blank">link</a> 

जब मैं एक राइट क्लिक के साथ लिंक को खोलने -> "नए टैब में खोलें लिंक", sessionStorage TargetPage पर खाली है। (अपेक्षित) लेकिन जब मैं सामान्य बाएं-क्लिक के साथ लिंक खोलता हूं, तो सत्रस्टॉरेज को लक्ष्यपृष्ठ पर कॉपी किया जाता है। (अप्रत्याशित)

नोट: मैं Chrome और Firefox में इस व्यवहार को देखा है। इंटरनेट एक्सप्लोरर 9 दोनों मामलों में एक खाली सत्र स्टोरेज प्रदान करता है। यह मेरा अपेक्षित व्यवहार है।

मैं व्यवहार प्रदर्शित करने के लिए एक jsFiddle बना लिया है: http://jsfiddle.net/P9nUv/3/

किसी नए ब्राउज़र टैब/विंडोज के लिए एक खाली sessionStorage सुनिश्चित करने के लिए, कोई फर्क नहीं पड़ता कि वे कैसे खोला गया है एक क्रॉस-ब्राउज़र समाधान के बारे में सोच सकते हैं?

किसी भी मदद की सराहना की जाती है!

उत्तर

1

IMHO:

मुझे लगता है कि समस्या अलग browsing context में है। W3C webStorage विनिर्देश में एक पैरा है:

जब एक नया दस्तावेज़ एक ब्राउज़िंग संदर्भ में जो एक उच्च-स्तरीय ब्राउज़िंग संदर्भ है में बनाया जाता है, उपयोगकर्ता एजेंट देखने के लिए जाँच करना चाहिए कि अगर उच्च-स्तरीय ब्राउज़िंग संदर्भ कि दस्तावेज़ के मूल इस उद्धरण में

Document के लिए एक सत्र भंडारण क्षेत्र है नया पृष्ठ का मतलब है। तो इसका मतलब है कि यदि आप एक ही पृष्ठ पर नए टैब में खुलते हैं तो यह उसी browsing context और उसी सत्र स्टोरेज का उपयोग करता है, लेकिन यदि आप नई विंडो (यानी लक्ष्य = "_ खाली") में खुलते हैं तो browsing context अलग है।

या

समस्या अलग सीपीयू धागे की हो सकती है, इसलिए अलग browsing context और अलग sessionStorage रों।

1

एक बार फिर एक प्राचीन सवाल है, लेकिन मैं इस समस्या का कोई जवाब इस साइट पर नहीं मिला और मैं सिर्फ मैं एक समाधान पाया फ़ायरफ़ॉक्स 44 के साथ इस एक ही समस्या थी और आप इसे यहाँ पा सकते हैं: https://stackoverflow.com/a/35596134/3751509

उम्मीद है की यह मदद करेगा।

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