2011-11-28 14 views
15

मेरे यूआरएलwindow.location.replace जावास्क्रिप्ट का उपयोग कैसे करें?

http://www.mysite.com/folder1/page1.aspx 
http://www.mysite.com/folder1/page1.aspx?id=1 
http://www.mysite.com/folder1/page1.aspx?id=1&dt=20111128 

पुन: निर्देशित पृष्ठ

http://www.mysite.com/folder1/page2.aspx 

मैं कैसे page1.aspx में एक जावास्क्रिप्ट लिखने के page2.aspx

को page1.aspx से रीडायरेक्ट करना चाहते हैं?

window.location.replace("/page2.aspx"); 
window.location.replace("../page2.aspx"); 
window.location.replace("~/page2.aspx"); 

पहले 2 ने मुझे यह दिया।

http://www.mysite.com/page2.aspx 

अंतिम 1 ने मुझे यह दिया।

http://www.mysite.com/folder1/~/page2.aspx 

उपयोग करने का सही तरीका क्या है?

+0

आप वास्तव में क्या करने की कोशिश कर रहे हैं? – JohnP

+0

ऐसा लगता है कि आपको यूआरएल रीराइटिंग के रूप में आवश्यकता है? – david

उत्तर

43

सभी में कोई पथ जानकारी शामिल करें, सिर्फ एक कड़ी में की तरह:

window.location.replace("page2.aspx"); 

Here's a live example उदाहरण

http://jsbin.com/asupup/3 -- The "3" corresponds to your "page2.aspx"
के बीच
http://jsbin.com/asupup/2 -- The "2" corresponds to your "page1.aspx"

... और

स्विच ... और इसलिए 2 पृष्ठ

का उपयोग करता है
window.location.replace("3"); 

... और 3 पेज

window.location.replace("2"); 

का उपयोग करता है के बारे में कैसे URL (और विशेष रूप से सापेक्ष URL में) काम करते हैं, RFC3986 देखना अधिक जानकारी के लिए। लेकिन मूल रूप से: एक सापेक्ष URL . या / के साथ शुरू नहीं करता

  • है, यह अंतिम खंड बदल देता है। तो:

    http://foo.com/one/two/page.html 
    + ../bar.html 
    = http://foo.com/one/bar.html 
    

    ध्यान दें कि two सबफ़ोल्डर प्रतिस्थापित किया गया है:

    http://foo.com/one/two/page.html 
    + bar.html 
    = http://foo.com/one/two/bar.html 
    
  • एक सापेक्ष URL ../ के साथ शुरू होता है, यह अंतिम खंड और यह ऊपर एक बदल देता है। यह होस्टनाम के बाद सब कुछ बदल देता है (और बंदरगाह, यदि कोई हो)

    http://foo.com/one/two/three/four/page.html 
    + ../../bar.html 
    = http://foo.com/one/two/bar.html 
    
  • एक सापेक्ष URL एक भी / के साथ शुरू होता है, तो: एकाधिक ../ रों कई स्तरों ऊपर ले जाने के लिए इस्तेमाल किया जा सकता है।तो:

    http://foo.com/one/two/page.html 
    + /bar.html 
    = http://foo.com/bar.html 
    
        http://foo.com:8080/one/two/page.html 
    + /bar.html 
    = http://foo.com:8080/bar.html 
    
  • एक सापेक्ष URL // साथ, प्रोटोकॉल निम्नलिखित शुरू होता है यह सब कुछ बदल देता है तो,:

    http://ex.com/folder/page.html 
    + //foo.com 
    = http://foo.com 
    

    (यह आसान है जब संसाधनों लोड हो रहा है और आप http के बारे में चिंता किए बनाम से बचना चाहते हैं https और मिश्रित सामग्री चेतावनियां।)

+0

यह नहीं करता है। यह एक ही पृष्ठ लोड करेगा। – william

+0

@ विल्लियम: यदि आप 'पेज 2.aspx' पर नहीं हैं तो नहीं। यदि आप 'http: // www.mysite.com/folder1/page1.aspx' पर हैं (इसके बाद क्वेरी स्ट्रिंग के साथ या उसके बिना), उपर्युक्त आपको 'http://www.mysite.com/folder1 पर ले जाएगा)/page2.aspx'। यह सापेक्ष यूआरएल का सबसे बुनियादी रूप है। –

+0

@ विल्लियम - यदि आप इसके बारे में सोचते हैं तो आपके प्रश्न से दूसरे और तीसरे यूआरएल प्रारूप भी टी.जे. के अनुरूप हैं। सलाह दी है। – nnnnnn

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