ก่อนที่ฉันจะเริ่มต้น jQuery เป็นห้องสมุด JavaScript ที่ใช้สำหรับการจัดการ DOM ดังนั้นคุณไม่ควรใช้ jQuery สำหรับการเปลี่ยนเส้นทางหน้า
คำพูดจาก Jquery.com:
แม้ว่า jQuery อาจทำงานได้โดยไม่มีปัญหาใหญ่ในเบราว์เซอร์รุ่นเก่า แต่เราไม่ได้ทดสอบ jQuery ในนั้นและไม่แก้ไขข้อบกพร่องที่อาจปรากฏในนั้น
พบได้ที่นี่:
https://jquery.com/browser-support/
ดังนั้น jQuery ไม่ใช่โซลูชันแบบ end-all และ be-all สำหรับความเข้ากันได้แบบย้อนหลัง
โซลูชันต่อไปนี้ที่ใช้ JavaScript ดิบทำงานได้ในเบราว์เซอร์ทั้งหมดและได้มาตรฐานมาเป็นเวลานานดังนั้นคุณไม่จำเป็นต้องใช้ไลบรารีใด ๆ สำหรับการสนับสนุนข้ามเบราว์เซอร์
หน้านี้จะเปลี่ยนเส้นทางไปยังGoogleหลังจาก 3000 มิลลิวินาที
<!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 Refresh
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
ที่ตั้ง META
<meta http-equiv="location" content="URL=http://evil.com" />
BASE Hijacking
<base href="http://evil.com/" />
วิธีการอื่น ๆ อีกมากมายในการเปลี่ยนเส้นทางไคลเอ็นต์ที่ไม่สงสัยไปยังหน้าเว็บที่พวกเขาไม่ต้องการไปสามารถพบได้ในหน้านี้ (ไม่ใช่หนึ่งในนั้นพึ่งพา jQuery):
https://code.google.com/p/html5security/wiki/RedirectionMethods
ฉันอยากจะชี้ให้เห็นคนไม่ชอบที่จะเปลี่ยนเส้นทางแบบสุ่ม เปลี่ยนเส้นทางผู้คนเมื่อจำเป็นเท่านั้น หากคุณเริ่มการเปลี่ยนเส้นทางผู้คนแบบสุ่มพวกเขาจะไม่ไปที่ไซต์ของคุณอีก
ย่อหน้าถัดไปเป็นสมมุติ:
คุณอาจได้รับรายงานว่าเป็นเว็บไซต์ที่เป็นอันตราย หากสิ่งนั้นเกิดขึ้นเมื่อผู้คนคลิกที่ลิงค์ไปยังเว็บไซต์ของคุณเบราว์เซอร์ผู้ใช้อาจเตือนพวกเขาว่าเว็บไซต์ของคุณเป็นอันตราย สิ่งที่อาจเกิดขึ้นคือเสิร์ชเอ็นจิ้นอาจเริ่มลดระดับการให้คะแนนของคุณหากผู้คนรายงานประสบการณ์ที่ไม่ดีในเว็บไซต์ของคุณ
โปรดอ่านหลักเกณฑ์สำหรับผู้ดูแลเว็บของ Google เกี่ยวกับการเปลี่ยนเส้นทาง:
https://support.google.com/webmasters/answer/2721217?hl=th&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>
หากคุณรวมตัวอย่างสองหน้าเข้าด้วยกันคุณจะมีวงวนทารกของการเปลี่ยนเส้นทางที่จะรับประกันว่าผู้ใช้ของคุณจะไม่ต้องการใช้เว็บไซต์ของคุณอีกครั้ง