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




jquery redirect (25)

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


Answers

मुझे यह भी लगता है कि 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 -->

# 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 = 'your_url';

ECMAScript 6 + jQuery, 85 बाइट्स

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

कृपया मुझे मत मारो, यह एक मजाक है। यह एक मज़ाक है। यह एक मजाक है।

इसने "प्रश्न का उत्तर प्रदान किया", इस अर्थ में कि यह "jQuery का उपयोग करके" एक समाधान के लिए पूछा गया था, जो इस मामले में किसी भी तरह समीकरण में मजबूर करने के लिए मजबूर करता है।

फेरीबाग को स्पष्ट रूप से समझाए गए मजाक की जरूरत है (अभी भी मजाक कर रहा हूं, मुझे यकीन है कि समीक्षा प्रपत्र पर सीमित विकल्प हैं), इसलिए बिना किसी विज्ञापन के:

अन्य उत्तर location या window ऑब्जेक्ट्स पर jQuery के attr() अनावश्यक रूप से उपयोग कर रहे हैं।

यह उत्तर भी इसका दुरुपयोग करता है, लेकिन अधिक हास्यास्पद तरीके से। स्थान सेट करने के लिए इसका उपयोग करने के बजाय, यह स्थान सेट करने वाले फ़ंक्शन को पुनः प्राप्त करने के लिए attr() का उपयोग करता है।

फ़ंक्शन को jQueryCode का नाम दिया jQueryCode भले ही इसके बारे में jQuery कुछ भी नहीं है, और फ़ंक्शन को कॉल करना jQueryCode सिर्फ भयानक है, खासकर जब कुछ भी एक भाषा नहीं है।

"85 बाइट्स" कोड गोल्फ का एक संदर्भ है। गोल्फिंग स्पष्ट रूप से कुछ ऐसा नहीं है जो आपको कोड गोल्फ के बाहर करना चाहिए, और इसके अलावा यह जवाब स्पष्ट रूप से वास्तव में गोल्फ नहीं है।

असल में, ऐंठन।


एक बस 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";

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

Jquery.com का एक उद्धरण:

हालांकि jQuery पुराने ब्राउज़र संस्करणों में प्रमुख मुद्दों के बिना चल सकता है, हम उनमें सक्रिय रूप से jQuery का परीक्षण नहीं करते हैं और आमतौर पर उन बग को ठीक नहीं करते हैं जो उनमें दिखाई दे सकते हैं।

यह यहाँ पाया गया था: https://jquery.com/browser-support/

तो jQuery एक अंत-सब नहीं है और पीछे की संगतता के लिए सभी समाधान हो।

कच्चे जावास्क्रिप्ट का उपयोग करते हुए निम्नलिखित समाधान सभी ब्राउज़रों में काम करता है और लंबे समय से मानक है, इसलिए आपको क्रॉस ब्राउज़र समर्थन के लिए किसी भी लाइब्रेरी की आवश्यकता नहीं है।

यह पृष्ठ 3000 मिलीसेकंड के बाद google.com पर पुनर्निर्देशित हो जाएगा

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

विभिन्न विकल्प इस प्रकार हैं:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

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

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

मेटा रीफ्रेश

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

मेटा स्थान

<meta http-equiv="location" content="URL=http://evil.com" />

आधार अपहरण

<base href="http://evil.com/" />

अपने अनसुने क्लाइंट को एक पृष्ठ पर पुनर्निर्देशित करने की कई और विधियाँ, वे इस पृष्ठ पर नहीं जा सकते हैं (उनमें से कोई भी jQuery पर निर्भर नहीं है):

https://code.google.com/p/html5security/wiki/RedirectionMethods

मैं यह भी कहना चाहूंगा कि लोग बेतरतीब ढंग से पुनर्निर्देशित होना पसंद नहीं करते। जब जरूरत हो तभी लोगों को पुनर्निर्देशित करें। यदि आप लोगों को यादृच्छिक रूप से पुनर्निर्देशित करना शुरू करते हैं तो वे आपकी साइट पर फिर कभी नहीं जाएंगे।

अगला भाग काल्पनिक है:

आपको दुर्भावनापूर्ण साइट के रूप में भी रिपोर्ट किया जा सकता है। यदि ऐसा होता है तो जब लोग आपकी साइट के लिंक पर क्लिक करते हैं तो उपयोगकर्ता ब्राउज़र उन्हें चेतावनी दे सकता है कि आपकी साइट दुर्भावनापूर्ण है। क्या हो सकता है कि खोज इंजन आपकी रेटिंग को छोड़ना शुरू कर दे, यदि लोग आपकी साइट पर किसी बुरे अनुभव की सूचना दे रहे हैं।

कृपया पुनर्निर्देशन के बारे में Google वेबमास्टर दिशानिर्देशों की समीक्षा करें: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971

यहां एक मजेदार छोटा पृष्ठ है जो आपको पृष्ठ से बाहर निकालता है।

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

यदि आप दो पृष्ठ के उदाहरणों को एक साथ जोड़ते हैं, तो आपके पास पुनर्मूल्यांकन का एक शिशु लूप होगा जो इस बात की गारंटी देगा कि आपका उपयोगकर्ता कभी भी आपकी साइट का उपयोग कभी नहीं करना चाहेगा।



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

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 विधि के साथ अद्यतन करना था:

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

जावास्क्रिप्ट:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

jQuery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window


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

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

यहाँ एक समय देरी पुनर्निर्देशन है। आप जो भी चाहते हैं उसके लिए विलंब समय निर्धारित कर सकते हैं:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>

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

window.location = window.location.host

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

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


आप ऐसा बिना jQuery के कर सकते हैं:

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

और अगर आप केवल jQuery चाहते हैं तो आप इसे पसंद कर सकते हैं:

$jq(window).attr("location","http://yourdomain.com");

ऐसा करने के बहुत सारे तरीके हैं।

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')

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

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

<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;

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

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

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

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

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

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

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

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

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

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

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

window.location.replace("http://.com");
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 के साथ आप इस कोड को सिर्फ एक या दो लाइन से जोड़ सकते हैं।


यदि आप जो करने की कोशिश कर रहे हैं, उसमें थोड़ा और वर्णनात्मक होने पर मदद मिलेगी। यदि आप पृष्ठांकित डेटा जनरेट करने का प्रयास कर रहे हैं, तो कुछ विकल्प हैं कि आप यह कैसे करते हैं। आप प्रत्येक पृष्ठ के लिए अलग लिंक उत्पन्न कर सकते हैं जिसे आप सीधे प्राप्त करने में सक्षम होना चाहते हैं।

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

ध्यान दें कि उदाहरण में वर्तमान पृष्ठ को कोड में और CSS के साथ अलग तरीके से संभाला गया है।

यदि आप चाहते हैं कि पृष्ठांकित डेटा को AJAX के माध्यम से बदल दिया जाए, तो यह वह जगह है जहाँ jQuery आएगा। आप क्या करेंगे जो प्रत्येक एंकर टैग में एक अलग पृष्ठ के लिए एक क्लिक हैंडलर जोड़ देगा। यह क्लिक हैंडलर कुछ jQuery कोड का आह्वान करता है जो AJAX के माध्यम से अगले पेज पर जाता है और नए डेटा के साथ तालिका को अपडेट करता है। नीचे दिया गया उदाहरण मानता है कि आपके पास एक वेब सेवा है जो नया पृष्ठ डेटा लौटाती है।

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});

  • अगर आप किसी लिंक पर क्लिक करने के अनुकरण करना चाहते हैं, तो 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";

सूचना को इस उत्तर से डुप्लिकेट प्रश्न में कॉपी किया गया है







javascript jquery redirect