javascript मैं किसी अन्य वेबपृष्ठ पर रीडायरेक्ट कैसे करूं?





15 Answers

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

$(location).attr('href', 'http://stackoverflow.com')
javascript jquery redirect

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




उपयोग:

// 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')



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

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

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

यदि आप 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
    });
});



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

window.location = window.location.host

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

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







शुरू करने से पहले, 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>

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




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

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

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

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



# एचटीएमएल पेज रीडायरेक्ट 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"; रूप में एक पूर्ण यूआरएल देना चाहते हैं window.location = "www.google.co.in";




आपको इस कोड को अपने कोड में रखना होगा:

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

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

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



***** मूल प्रश्न था - "JQUERY का उपयोग करने के लिए कैसे पुनर्निर्देशित करें", जवाब दें JQUERY >> अनुपूरक उपयोग केस *****

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

  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 के साथ आप इस कोड से केवल एक या दो पंक्तियों से जुड़ सकते हैं।




jQuery की आवश्यकता नहीं है। तुम यह केर सकते हो:

window.open("URL","_self","","")

यह इतना आसान है!

HTTP अनुरोध शुरू करने का सबसे अच्छा तरीका document.loacation.href.replace('URL')




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

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

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




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

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



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

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



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

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



Related