[Javascript] किसी अन्य वेबपेज पर कैसे पुनर्निर्देशित किया जा सकता है?


Answers

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

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

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




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

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

तथा...

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

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

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




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

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

यह आसान है!

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







इसलिए, सवाल यह है कि कैसे एक रीडायरेक्ट पृष्ठ बनाने के लिए, और कैसे एक वेबसाइट पर पुनर्निर्देशित नहीं है?

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

<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

और अगर आप उस लिंक पर जाएंगे तो यह आपको स्वतः स्टैकवॉयरफ्लो.कॉम पर रीडायरेक्ट कर देगा।

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

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

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

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

उदाहरण:

प्रक्रिया: स्टोर होम => पृष्ठ को google => Google पर रीडायरेक्ट करें

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

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

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

साथ में

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



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

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

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

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

फेरीबिग को जाहिरा तौर पर मजाक की समझाया गया था (अब भी मजाक कर रहे हैं, मुझे यकीन है कि समीक्षा के फार्म पर सीमित विकल्प हैं), तो आगे की हलचल के बिना:

अन्य उत्तर, jQuery के attr() का इस्तेमाल location या window ऑब्जेक्ट्स पर बेकार है।

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

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

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

असल में, चापलूसी




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

window.location.href = "http://www.google.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>
...

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

यदि आप चाहते हैं कि paged डेटा को 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
    });
});



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

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



var url = 'asdf.html';
window.location.href = url;



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

window.location = window.location.host

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

इन शब्दों को सिर्फ क्रोम कंसोल या फायरबग कंसोल में डालने से आप इस विंडो या विंडो को देख सकते हैं।




उपयोग:

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



असल में 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");

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




सिर्फ एक पृष्ठ पर पुनर्निर्देशित करने के लिए:

  window.location.href = "/destination.html";

या यदि आपको विलंब की आवश्यकता है:

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

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

function redirect () {
    $('selection').animate({
        marginLeft: 100px; //Put some CSS animation here
    }, 500, function () {
      // OK, finished jQuery staff, let's go redirect
      window.location.href = "/destination.html";
})

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




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

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