शुरू करने से पहले, jQuery डोम हेरफेर के लिए उपयोग की जाने वाली जावास्क्रिप्ट लाइब्रेरी है। इसलिए आपको एक पृष्ठ पुनर्निर्देशित करने के लिए jQuery का उपयोग नहीं करना चाहिए।
Jquery.com का एक उद्धरण:
हालांकि jQuery पुराने ब्राउज़र संस्करणों में प्रमुख मुद्दों के बिना चल सकता है, हम उनमें सक्रिय रूप से jQuery का परीक्षण नहीं करते हैं और आम तौर पर उन बगों को ठीक नहीं करते हैं जो उनमें दिखाई दे सकते हैं।
यह यहाँ पाया गया था:
https://jquery.com/browser-support/
तो jQuery एक अंत-सब नहीं है और पीछे की संगतता के लिए सभी समाधान हो।
कच्चे जावास्क्रिप्ट का उपयोग करते हुए निम्नलिखित समाधान सभी ब्राउज़रों में काम करता है और लंबे समय से मानक है, इसलिए आपको क्रॉस ब्राउज़र समर्थन के लिए किसी भी लाइब्रेरी की आवश्यकता नहीं है।
यह पृष्ठ 3000 मिलीसेकंड के बाद Google पर पुनर्निर्देशित हो जाएगा
<!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=hi&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>
यदि आप दो पृष्ठ के उदाहरणों को एक साथ जोड़ते हैं, तो आपके पास पुनर्मूल्यांकन का एक शिशु लूप होगा जो इस बात की गारंटी देगा कि आपका उपयोगकर्ता कभी भी आपकी साइट का उपयोग कभी नहीं करना चाहेगा।