क्या कोई मुझे window.location.hrefऔर के बीच का अंतर बता सकता है top.location.href?
और यह भी कि किसका उपयोग करना है।
और कौन सा बेहतर होगा जब एमजेड में अजाक्स कॉल के बाद पुनर्निर्देशित किया जाए?
क्या कोई मुझे window.location.hrefऔर के बीच का अंतर बता सकता है top.location.href?
और यह भी कि किसका उपयोग करना है।
और कौन सा बेहतर होगा जब एमजेड में अजाक्स कॉल के बाद पुनर्निर्देशित किया जाए?
जवाबों:
window.location.href वर्तमान पृष्ठ का स्थान लौटाता है।
top.location.href(जो एक अन्य नाम है window.top.location.href) खिड़की पदानुक्रम में सबसे ऊपरी खिड़की का स्थान देता है। यदि किसी विंडो में कोई अभिभावक नहीं है, topतो स्वयं का संदर्भ है (दूसरे शब्दों में, window=== window.top)।
topफ्रेम के साथ काम करते समय और अन्य पृष्ठों द्वारा खोली गई खिड़कियों के साथ काम करते समय दोनों उपयोगी है। उदाहरण के लिए, यदि आपके पास test.htmlनिम्नलिखित स्क्रिप्ट के साथ एक पृष्ठ है :
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
परिणामी अलर्ट में test.html का पूरा रास्ता होगा - के बारे में नहीं : रिक्त, जो है window.location.hrefवह वापस आ जाएगा।
पुनर्निर्देशन के बारे में आपके प्रश्न का उत्तर देने के लिए, साथ जाएं window.location.assign(url);
top.location.hrefएक उर्फ की window.top.location.href? मैंने सोचा था कि तथाकथित "वैश्विक" चर वास्तव में एक संपत्ति के लिए एक आशुलिपि है,window जबकि अन्य का तात्पर्य यह एक स्वतंत्र चर है जो उसी स्थान पर इंगित करता है।
topऑब्जेक्ट फ़्रेम के अंदर अधिक समझ में आता है। एक फ़्रेम के अंदर, windowवर्तमान फ़्रेम की विंडो को topसंदर्भित करता है जबकि बाहरी विंडो को संदर्भित करता है जिसमें फ़्रेम (s) शामिल हैं। इसलिए:
window.location.href = 'somepage.html';somepage.htmlफ्रेम के अंदर लोड करने का मतलब है ।
top.location.href = 'somepage.html';somepage.htmlमुख्य ब्राउज़र विंडो में लोड हो रहा है।
topविंडो ऑब्जेक्ट को संदर्भित करता है जिसमें सभी वर्तमान फ्रेम (बाकी खिड़कियों के पिता) शामिल हैं। windowवर्तमान है window।
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
इसलिए top.location.hrefइसमें "मास्टर" पृष्ठ लिंक हो सकता है जिसमें सभी फ़्रेम शामिल हैं, जबकि window.location.hrefबस "वर्तमान" पृष्ठ लिंक शामिल है।
पहला वाला आपके इतिहास में एक आइटम जोड़ता है जिसमें आप "बैक" पर क्लिक कर सकते हैं (चालू कर सकते हैं) और वर्तमान पृष्ठ पर वापस जाएं।
दूसरा वर्तमान इतिहास आइटम को बदल देता है ताकि आप उस पर वापस न जा सकें।
देखें window.location:
assign(url): दिए गए URL पर दस्तावेज़ लोड करें।
replace(url): वर्तमान दस्तावेज़ को दिए गए URL पर एक के साथ बदलें। assign()विधि से अंतर यह है कि replace()वर्तमान पृष्ठ का उपयोग करने के बाद सत्र इतिहास में सहेजा नहीं जाएगा, जिसका अर्थ है कि उपयोगकर्ता उस पर नेविगेट करने के लिए बैक बटन का उपयोग करने में सक्षम नहीं होगा।
window.location.href = url;
पर इष्ट है:
window.location = url;