जावास्क्रिप्ट में एक रिश्तेदार URL पर पुनर्निर्देशित करना


363

मुझे एक समस्या है: मैं जावास्क्रिप्ट के माध्यम से ऊपर की निर्देशिका में पुनर्निर्देशित करना चाहता हूं। मेरा कोड:

location.href = (location.href).substr(0, (location.href).lastIndexOf('folder'));

URL इस तरह दिखता है:

example.com/path/folder/index.php?file=abc&test=123&lol=cool

पुनर्निर्देशन बस इसे प्रभावित करता है:

example.com/path/&test=123&lol=cool

लेकिन यह चाहते हैं:

example.com/path/

ऐसा कैसे किया जा सकता था?

जवाबों:


684

आप एक रिश्तेदार पुनर्निर्देशित कर सकते हैं:

window.location.href = '../'; //one level up

या

window.location.href = '/path'; //relative to domain

29
क्यों आप का उपयोग करना चाहिए window.location.replace stackoverflow.com/questions/503093/...
गिदोन

52
जब आप किसी लिंक का अनुकरण करना चाहते हैं, तो आपको उपयोग करना चाहिए window.location.href। आपको केवल window.location.replaceतब उपयोग करना चाहिए जब आप एक http पुनर्निर्देशित करना चाहते हैं (इस प्रकार एक इतिहास आइटम नहीं बना रहे हैं)।
बेंजी XVI

24
वैसे, document.locationकेवल पढ़ने के लिए संपत्ति के रूप में इरादा था। यह उपयोग करने के लिए सुरक्षित है window.locationइस प्रश्न को देखें ।
बेंजी XVI

6
मैंने window.location.href = '../'साइट के रूट पर पुनर्निर्देशित का उपयोग किया और अपेक्षा के अनुसार "एक स्तर ऊपर" नहीं पाया । जब वर्तमान पृष्ठ "www.example.com/customers/list" है, तो मुझे उपयोग करने की आवश्यकता है './'। मुझे लगता है कि ऐसा इसलिए है क्योंकि "सूची" को एक निर्देशिका स्तर के रूप में नहीं माना जाता है।
मार्कस कनिंघम

2
@MarcusCunningham, आपके उदाहरण में, निर्देशिका / ग्राहक / है - इसलिए "एक स्तर ऊपर" www.example.com/ है। अब यदि आपका उदाहरण URL www.example.com/customers/list/ है - तो यह आपको www.example.com/customers/ पर भेज देगा
Ubeogesh

12

यदि आप उपयोग करते हैं location.hostnameतो आपको अपना domain.com भाग मिलेगा। फिर location.pathnameआपको / पाथ / फोल्डर देगा। मैं location.pathnameURL को / / और फिर से विभाजित करूँगा । लेकिन जब तक आपको क्वेरिस्ट्रिंग की आवश्यकता नहीं होती है, आप ..ऊपर की निर्देशिका में जाने के लिए पुनर्निर्देशित कर सकते हैं।


जब मैं location.path पर जाता हूं तो मेरा ब्राउज़र भौंकता है और यह केवल location.pathname को पहचानता है । संकेत?
कोनराड विल्टरनस्ट

location.path गलत है, यह location.hostname होना चाहिए। मैंने इसे ठीक करने के लिए पोस्ट में एक संपादन जोड़ा है।
यृगिमान

8

को अनुप्रेषित ../


यदि आपका ऐप सब-यूरी में होस्ट किया गया है और ऐप को उप-यूरी पथ का पता नहीं है। यदि आप अपने ऐप्स रूट पर हैं और आप करते हैं .. तो ऐप को यह पता नहीं चलेगा कि उसे कैसे रूट करना है। उदाहरण के लिए, एक ही ऐप को example.com/myapp और other.example.com/app2
ReggieB


5

<a href="..">no JS needed</a>

.. माता-पिता की निर्देशिका।


14
इसके लिए एक क्लिक या कुछ अन्य उपयोगकर्ता द्वारा शुरू किए गए नेविगेशन की आवश्यकता होती है।
पुनरावर्ती

2

मैं जावास्क्रिप्ट का उपयोग करके अपनी वर्तमान वेब साइट को उसी पृष्ठ पर अन्य अनुभाग पर पुनर्निर्देशित करने की कोशिश कर रहा हूं। यह मेरे लिए कोड का पालन करें:

location.href='/otherSection'

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.