क्या कोई मुझे 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;