javascript मैं किसी अन्य वेबपृष्ठ पर कैसे पुनर्निर्देशित करूं?




jquery redirect (20)

मैं jQuery या शुद्ध जावास्क्रिप्ट का उपयोग करके उपयोगकर्ता को एक पृष्ठ से दूसरे पृष्ठ पर कैसे पुनर्निर्देशित कर सकता हूं?

https://code.i-harness.com


किसी पृष्ठ को रीडायरेक्ट करने के लिए मानक "वेनिला" जावास्क्रिप्ट तरीका:

window.location.href = 'newPage.html';

यदि आप यहां हैं क्योंकि पुनर्निर्देशन के दौरान आप HTTP_REFERER खो रहे हैं, तो पढ़ते रहें:

निम्नलिखित अनुभाग कई सुरक्षित उपायों में से एक के रूप में HTTP_REFERER का उपयोग करने वालों के लिए है (हालांकि यह एक महान सुरक्षात्मक उपाय नहीं है)। यदि आप Internet Explorer 8 या उससे कम का उपयोग कर रहे हैं, तो जावास्क्रिप्ट पृष्ठ पुनर्निर्देशन (स्थान.शहर, आदि) के किसी भी रूप का उपयोग करते समय ये चर खो जाते हैं।

नीचे हम IE8 और लोअर के लिए एक विकल्प लागू करने जा रहे हैं ताकि हम HTTP_REFERER न खोएं। अन्यथा आप लगभग हमेशा window.location.href उपयोग कर सकते हैं।

HTTP_REFERER (URL चिपकाना, सत्र, आदि) के विरुद्ध परीक्षण यह बताने में मददगार हो सकता है कि कोई अनुरोध वैध है या नहीं। ( नोट: इन रेफ़रर्स को काम करने के इर्द-गिर्द / बिगाड़ने के तरीके भी हैं, जैसा कि टिप्पणियों में डॉप के लिंक द्वारा दिया गया है)

सरल क्रॉस-ब्राउज़र परीक्षण समाधान (इंटरनेट एक्सप्लोरर 9+ और अन्य सभी ब्राउज़रों के लिए window.location.href पर वापसी)

उपयोग: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}

चेतावनी: यह उत्तर केवल एक संभावित समाधान के रूप में प्रदान किया गया है; यह स्पष्ट रूप से सबसे अच्छा समाधान नहीं है, क्योंकि इसमें jQuery की आवश्यकता होती है। इसके बजाय, शुद्ध जावास्क्रिप्ट समाधान पसंद करते हैं।

$(location).attr('href', 'http://.com')

एक बस jQuery का उपयोग करके पुनर्निर्देशित नहीं करता है

jQuery आवश्यक नहीं है, और window.location.replace(...) सबसे अच्छा HTTP पुनर्निर्देशित अनुकरण करेगा।

window.location.replace(...) window.location.href का उपयोग करने से बेहतर है, क्योंकि replace() सत्र इतिहास में मूल पृष्ठ को नहीं रखता है, जिसका अर्थ है कि उपयोगकर्ता कभी भी समाप्त न होने वाले बैक में फंस नहीं जाएगा- बटन फियास्को।

यदि आप किसी लिंक पर क्लिक करने वाले किसी व्यक्ति का अनुकरण करना चाहते हैं, तो location.href उपयोग करें

यदि आप किसी HTTP रीडायरेक्ट का अनुकरण करना चाहते हैं, तो location.replace उपयोग करें

उदाहरण के लिए:

// similar behavior as an HTTP redirect
window.location.replace("http://.com");

// similar behavior as clicking on a link
window.location.href = "http://.com";

***** मूल प्रश्न वास - "कैसे कम करने की इच्छा का उपयोग करें", जवाबदेही आवश्यकताओं को पूरा करें >> अनिवार्य उपयोग मामला *****

केवल जावास्क्रिप्ट के साथ एक पृष्ठ पर पुनर्निर्देशित करने के लिए:

  window.location.href = "/contact/";

या अगर आपको देरी की आवश्यकता है:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

jQuery आपको आसानी से वेब पेज से तत्वों का चयन करने की अनुमति देता है। आप एक पेज पर अपनी मनचाही चीज पा सकते हैं और फिर विशेष प्रभावों को जोड़ने के लिए jQuery का उपयोग कर सकते हैं, उपयोगकर्ता के कार्यों पर प्रतिक्रिया कर सकते हैं, या आपके द्वारा चयनित तत्व के अंदर या बाहर सामग्री दिखा या छिपा सकते हैं। ये सभी कार्य किसी तत्व या किसी घटना का चयन करने के तरीके को जानने के साथ शुरू होते हैं।

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

कल्पना कीजिए कि किसी ने एक स्क्रिप्ट / प्लगइन लिखा है जो कोड की 10000 लाइनें है ?! खैर, jQuery के साथ आप इस कोड को सिर्फ एक या दो लाइन से जोड़ सकते हैं।


अपने क्लिक फ़ंक्शन पर, बस जोड़ें:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});

आप इस तरह jQuery में पुनर्निर्देशित कर सकते हैं:

$(location).attr('href', 'http://yourPage.com/');

आपको यह कोड अपने कोड में डालना होगा:

$(location).attr("href","http://.com");

यदि आपके पास jQuery नहीं है, तो जावास्क्रिप्ट के साथ जाएं:

window.location.replace("http://.com");
window.location.href("http://.com");


जावास्क्रिप्ट आपको वर्तमान URL को पुनः प्राप्त करने और बदलने के लिए कई तरीके प्रदान करता है जो ब्राउज़र के पता बार में प्रदर्शित होता है। ये सभी विधियाँ स्थान ऑब्जेक्ट का उपयोग करती हैं, जो विंडो ऑब्जेक्ट की एक संपत्ति है। आप एक नया स्थान ऑब्जेक्ट बना सकते हैं जिसमें वर्तमान URL निम्नानुसार है ..

var currentLocation = window.location;

किसी URL की मूल संरचना

<protocol>//<hostname>:<port>/<pathname><search><hash>

  1. प्रोटोकॉल - इंटरनेट पर संसाधन तक पहुंचने के लिए प्रोटोकॉल नाम का उपयोग किया जाता है। (HTTP (SSL के बिना) या HTTPS (SSL के साथ))

  2. hostname - होस्ट नाम उस होस्ट को निर्दिष्ट करता है जो संसाधन का मालिक है। उदाहरण के लिए, www..com। एक सर्वर होस्ट के नाम का उपयोग करके सेवाएं प्रदान करता है।

  3. port - किसी विशिष्ट प्रक्रिया को पहचानने के लिए उपयोग किया जाने वाला एक पोर्ट नंबर, जिसे किसी सर्वर पर आने पर इंटरनेट या अन्य नेटवर्क संदेश को अग्रेषित करना होता है।

  4. pathname - पथ होस्ट के भीतर विशिष्ट संसाधन के बारे में जानकारी देता है जिसे वेब क्लाइंट एक्सेस करना चाहता है। उदाहरण के लिए, .com/index.html।

  5. क्वेरी - एक क्वेरी स्ट्रिंग पथ घटक का अनुसरण करता है, और एक जानकारी प्रदान करता है जिसे संसाधन किसी उद्देश्य के लिए उपयोग कर सकते हैं (उदाहरण के लिए, खोज के लिए पैरामीटर या संसाधित किए जाने वाले डेटा के रूप में)।

  6. हैश - किसी URL का एंकर भाग, हैश साइन (#) शामिल करता है।

इन स्थान ऑब्जेक्ट गुणों के साथ आप इन सभी URL घटकों तक पहुँच सकते हैं

  1. hash -Sets या किसी URL का एंकर भाग लौटाता है।
  2. host -Sets या URL का hostname और port लौटाता है।
  3. hostname -Sets या URL का hostname वापस करता है।
  4. href- पूरा URL लौटाता है या देता है।
  5. pathname -Sets या URL का पथ नाम देता है।
  6. पोर्ट -Sets या पोर्ट नंबर का उपयोग करता है जो सर्वर URL के लिए उपयोग करता है।
  7. प्रोटोकॉल -Sets या URL का प्रोटोकॉल लौटाता है।
  8. खोज -Sets या किसी URL का क्वेरी भाग लौटाता है

अब यदि आप किसी पृष्ठ को बदलना चाहते हैं या उपयोगकर्ता को किसी अन्य पृष्ठ पर पुनर्निर्देशित करना चाहते हैं, तो आप इस तरह स्थान वस्तु की href संपत्ति का उपयोग कर सकते हैं

आप स्थान ऑब्जेक्ट की href प्रॉपर्टी का उपयोग कर सकते हैं।

window.location.href = "http://www..com";

लोकेशन ऑब्जेक्ट के भी ये तीन तरीके हैं

  1. असाइन () - एक नया दस्तावेज़ लोड करता है।
  2. पुनः लोड () - वर्तमान दस्तावेज़ पुनः लोड करें।
  3. प्रतिस्थापित () - वर्तमान दस्तावेज़ को एक नए के साथ बदल देता है

आप इन जैसे अन्य पृष्ठों पर रीडायरेक्ट करने के लिए असाइन () और रिप्लेसमेंट विधियों का भी उपयोग कर सकते हैं

location.assign("http://www..com");

location.replace("http://www..com");

कैसे असाइन करें () और बदलें () भिन्न हैं - प्रतिस्थापित () विधि और असाइन () विधि के बीच का अंतर, यह है कि दस्तावेज़ इतिहास से वर्तमान दस्तावेज़ के URL को हटा देता है, इसका मतलब है कि इसका उपयोग करना संभव नहीं है मूल दस्तावेज़ पर वापस नेविगेट करने के लिए "बैक" बटन। इसलिए यदि आप एक नया दस्तावेज़ लोड करना चाहते हैं, तो मूल रूप से दस्तावेज़ में वापस नेविगेट करने का विकल्प देने के लिए असाइन () पद्धति का उपयोग करें।

आप इस तरह से jQuery का उपयोग कर स्थान वस्तु href संपत्ति बदल सकते हैं

$(location).attr('href',url);

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


जावास्क्रिप्ट और jQuery में हम एक पेज को दूसरे पेज पर रीडायरेक्ट करने के लिए निम्न कोड का उपयोग कर सकते हैं:

window.location.href="http://google.com";
window.location.replace("page1.html");

तो, सवाल यह है कि रीडायरेक्ट पेज कैसे बनाया जाए, न कि किसी वेबसाइट पर रीडायरेक्ट कैसे किया जाए?

इसके लिए आपको केवल जावास्क्रिप्ट का उपयोग करना होगा। यहां कुछ छोटे कोड हैं जो एक गतिशील रीडायरेक्ट पेज बनाएंगे।

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

तो कहते हैं कि आप इस स्निपेट को अपनी वेबसाइट पर एक redirect/index.html फ़ाइल में डाल सकते हैं, आप इसका उपयोग कर सकते हैं।

http://www.mywebsite.com/redirect?url=http://.com

और अगर आप उस लिंक पर जाते हैं, तो यह स्वचालित रूप से आपको .com पर रीडायरेक्ट कर देगा।

प्रलेखन के लिए लिंक

और यह है कि आप जावास्क्रिप्ट के साथ एक सरल रीडायरेक्ट पृष्ठ कैसे बनाते हैं

संपादित करें:

इसमें भी एक बात ध्यान देने वाली है। मैंने अपने कोड में window.location.replace जोड़ा है क्योंकि मुझे लगता है कि यह एक रीडायरेक्ट पेज को सूट करता है, लेकिन, आपको पता होना चाहिए कि window.location.replace का उपयोग करते समय और आप रीडायरेक्ट हो जाते हैं, जब आप अपने ब्राउज़र में बैक बटन दबाते हैं तो यह नहीं होगा पुनर्निर्देशित पृष्ठ पर वापस आ गया, और यह पृष्ठ पर वापस जाएगा इससे पहले कि, इस छोटी सी डेमो चीज़ पर एक नज़र डालें।

उदाहरण:

प्रक्रिया: स्टोर होम => रीडायरेक्ट पेज को google => google पर

जब Google में: google => ब्राउज़र में बैक बटन = होम स्टोर करें

इसलिए, यदि यह आपकी आवश्यकताओं के अनुरूप है तो सब कुछ ठीक होना चाहिए। यदि आप इसे बदलने के लिए ब्राउज़र इतिहास में पुनर्निर्देशित पृष्ठ को शामिल करना चाहते हैं

if( url ) window.location.replace(url);

साथ में

if( url ) window.location.href = url;

पहले ठीक से लिखो। आप किसी अन्य लिंक के लिए अपने एप्लिकेशन से किसी अन्य लिंक के लिए एक एप्लिकेशन के भीतर नेविगेट करना चाहते हैं। यहाँ कोड है:

window.location.href = "http://www.google.com";

और अगर आप अपने आवेदन के भीतर पृष्ठों को नेविगेट करना चाहते हैं तो मेरे पास भी कोड है, यदि आप चाहते हैं।


मुझे यह भी लगता है कि location.replace(URL) सबसे अच्छा तरीका है, लेकिन यदि आप अपने रीडायरेक्शन के बारे में खोज इंजन को सूचित करना चाहते हैं (वे रीडायरेक्ट को देखने के लिए जावास्क्रिप्ट कोड का विश्लेषण नहीं करते हैं) तो आपको rel="canonical" मेटा जोड़ना चाहिए अपनी वेबसाइट पर टैग करें।

इसमें HTML रिफ्रेश मेटा टैग के साथ नोस्क्रिप्ट सेक्शन जोड़ना भी एक अच्छा उपाय है। मैं आपको पुनर्निर्देशन बनाने के लिए इस जावास्क्रिप्ट पुनर्निर्देशन उपकरण का उपयोग करने का सुझाव देता हूं। HTTP रेफ़रर को पास करने के लिए इसमें Internet Explorer समर्थन भी है।

बिना देरी के नमूना कोड इस तरह दिखता है:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

मूल रूप से jQuery सिर्फ एक जावास्क्रिप्ट फ्रेमवर्क है और इस मामले में पुनर्निर्देशन जैसी कुछ चीजों को करने के लिए , आप बस शुद्ध जावास्क्रिप्ट का उपयोग कर सकते हैं, इसलिए उस स्थिति में आपके पास वेनिला जावास्क्रिप्ट का उपयोग करने के 3 विकल्प हैं:

1) स्थान बदलने का उपयोग करना, यह पृष्ठ के वर्तमान इतिहास को बदल देगा, इसका मतलब है कि मूल पृष्ठ पर वापस जाने के लिए बैक बटन का उपयोग करना संभव नहीं है।

window.location.replace("http://.com");

2) स्थान असाइनमेंट का उपयोग करना, यह आपके लिए इतिहास रखेगा और बैक बटन का उपयोग करने के साथ, आप मूल पृष्ठ पर वापस जा सकते हैं:

window.location.assign("http://.com");

3) मैं उन पिछले तरीकों में से एक का उपयोग करने की सलाह देता हूं, लेकिन शुद्ध जावास्क्रिप्ट का उपयोग करके यह तीसरा विकल्प हो सकता है:

window.location.href="http://.com";

आप इसे संभालने के लिए jQuery में एक फ़ंक्शन भी लिख सकते हैं, लेकिन अनुशंसित नहीं है क्योंकि यह केवल एक लाइन शुद्ध जावास्क्रिप्ट फ़ंक्शन है, आप विंडो के बिना उपरोक्त सभी कार्यों का उपयोग कर सकते हैं यदि आप पहले से ही खिड़की के दायरे में हैं, उदाहरण के लिए window.location.replace("http://.com"); location.replace("http://.com"); हो सकता है location.replace("http://.com");

इसके अलावा, मैं उन्हें नीचे दी गई छवि पर दिखाता हूं:


यह jQuery के साथ काम करता है:

$(window).attr("location", "http://google.fr");

यह हर ब्राउज़र के लिए काम करता है:

window.location.href = 'your_url';

लेकिन अगर कोई होम पेज पर वापस जाना चाहता है तो वह निम्नलिखित स्निपेट का उपयोग कर सकता है।

window.location = window.location.host

यह उपयोगी होगा यदि आपके पास विकास, मंचन और उत्पादन के रूप में तीन अलग-अलग वातावरण हैं।

आप क्रोम कंसोल या Firebug कंसोल में इन शब्दों को डालकर इस विंडो या window.location ऑब्जेक्ट का पता लगा सकते हैं।


# HTML पेज रीडायरेक्ट jQuery / जावास्क्रिप्ट का उपयोग कर

इस उदाहरण कोड का प्रयास करें:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

यदि आप window.location = "www.google.co.in"; रूप में एक पूर्ण URL देना चाहते हैं window.location = "www.google.co.in";


ऐसा करने के तीन मुख्य तरीके हैं,

window.location.href='blaah.com';
window.location.assign('blaah.com');

तथा...

window.location.replace('blaah.com');

अंतिम एक पारंपरिक पुनर्निर्देश के लिए सबसे अच्छा है, क्योंकि यह आपके खोज इतिहास में पुनर्निर्देशित होने से पहले आपके द्वारा गए पृष्ठ को नहीं बचाएगा। हालाँकि, यदि आप जावास्क्रिप्ट के साथ एक टैब खोलना चाहते हैं, तो आप उपरोक्त में से किसी का भी उपयोग कर सकते हैं। 1

संपादित करें: windowउपसर्ग वैकल्पिक है।


मुझे अभी इस हास्यास्पदता को एक और नए jQuery विधि के साथ अद्यतन करना था:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);






redirect