नहीं बदल रहा है, मैं ui-राउटर के साथ Angular.js 1.3 का उपयोग कर रहा हूं। मेरे पास 3 पेज हैं, पेज 1.html, पेज 2.html, पेज 3.html।
जब उपयोगकर्ता पेज 1 पर क्लिक करता है, तो पेज 2 खुल जाएगा, लेकिन मैं पृष्ठ 1 की स्क्रॉल स्थिति को सहेजना चाहता हूं, जहां उपयोगकर्ता क्लिक करने से पहले था, ताकि बैक बटन पर क्लिक करने के बाद वह उसी स्क्रॉल स्थिति पर उतर सके।
इसे सुलझाने के लिए मैं iframe में, page1.html से अधिक page2.html खोला, और यह page1.html में प्रदर्शन के लिए निरपेक्ष स्थिति दे रही है, और मैं उपयोग कर रहा हूँ:
history.pushState({}, '', '/page2.html');
यूआरएल बदलने के लिए। यह कार्यान्वयन ठीक काम कर रहा है।
अब उपयोगकर्ता page2.html पर दिए गए लिंक पर क्लिक करते हैं, यह page3.html खोलना चाहिए, एक सामान्य लिंक, जिसके लिए मैं प्रयोग किया जाता है जैसे:
$state.go("page3")
समस्या अब राज्य प्रभार है, और पृष्ठ 3 एचटीएमएल लोड, लेकिन यूआरएल अभी भी /page2.html है, यूआरएल बदल नहीं रहा है।
मैं भी करने की कोशिश की:
history.pushState({}, '', '/page3.html');
फिर भी यूआरएल में बदलाव नहीं किया गया है। कोई भी जानता है कि यह क्यों हो रहा है।
मुझे यकीन नहीं है कि यह काम करेगा।लेकिन मुझे लगता है कि आप 'इफ्रेम' में हैं इसलिए यही यूआरएल नहीं बदल रहा है। जब आप पेज 2 में हों तो क्या आप 'eval' आज़मा सकते हैं। हो सकता है 'parent.eval ($ state.go (" page3 ")) 'ऐसा कुछ। –
क्या आप एक JSFiddle पोस्ट कर सकते हैं? –
क्षमा करें मैं इसे jsfiddle पर पोस्ट नहीं कर सकता। लेकिन हाँ, मैं समझ सकता हूं कि लिंक आईफ्रेम में है, यही कारण है कि यह यूआरएल (शायद) नहीं बदल रहा है। लेकिन जेएस कोड ठीक चल रहा है, history.pushState चल रहा है (जेएस स्रोत डीबगर), लेकिन इसका यूआरएल पर कोई प्रभाव नहीं पड़ता है। Iframe के बारे में अधिक खोद जाएगा। –