ฉันต้องใช้ JavaScript ใดในการเปลี่ยนเส้นทางหน้าต่างหลักจาก iframe
ฉันต้องการให้พวกเขาคลิกไฮเปอร์ลิงก์ซึ่งใช้ JavaScript หรือวิธีอื่นใดจะเปลี่ยนเส้นทางหน้าต่างหลักไปยัง URL ใหม่
ฉันต้องใช้ JavaScript ใดในการเปลี่ยนเส้นทางหน้าต่างหลักจาก iframe
ฉันต้องการให้พวกเขาคลิกไฮเปอร์ลิงก์ซึ่งใช้ JavaScript หรือวิธีอื่นใดจะเปลี่ยนเส้นทางหน้าต่างหลักไปยัง URL ใหม่
คำตอบ:
window.top.location.href = "http://www.example.com";
ตามที่ระบุไว้ก่อนหน้านี้จะเปลี่ยนเส้นทาง iframe หลัก
sandbox
" - developer.mozilla.org/en-US/docs/Web/HTML/Element/iframesandbox
ป้องกันแอตทริบิวต์ JavaScript การกระทำบางอย่างอยู่ใน iframe ตาม ในรายการที่อนุญาตของการกระทำที่อนุญาต allow-top-navigation
คุณสมบัติเป็นหนึ่งในการกระทำที่คุณสามารถเปิดใช้งานในรายการที่อนุญาตซึ่งจะช่วยให้รหัสนี้ในการทำงาน หากsandbox
แอตทริบิวต์ไม่มีการดำเนินการทั้งหมดจะได้รับอนุญาต หากมีอยู่และสตริงว่างการกระทำทั้งหมดจะถูกปฏิเสธ
ฉันก็พบว่ามัน<a href="..." target="_top">link</a>
ใช้ได้เช่นกัน
window.top.location.href = "http://example.com";
window.top
อ้างถึงวัตถุหน้าต่างของหน้าที่ด้านบนของลำดับชั้นของเฟรม
หรือทางเลือกต่อไปนี้ (ใช้วัตถุเอกสาร)
parent.document.location.href = "http://example.com";
parent.location.href = ...
หนึ่งก็ควรใช้ developer.mozilla.org/en/document.location
target="_parent"
ทำงานได้ดีสำหรับฉัน ง่ายและไม่ยุ่งยาก!
@MIP ถูกต้อง แต่ด้วย Safari เวอร์ชันใหม่กว่าคุณจะต้องเพิ่มแอตทริบิวต์ sandbox (HTML5) เพื่อให้การเปลี่ยนเส้นทางเข้าถึง iFrame มีค่าเฉพาะสองสามค่าที่สามารถเพิ่มด้วยช่องว่างระหว่างค่าเหล่านั้น
ข้อมูลอ้างอิง (คุณจะต้องเลื่อน): https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
Ex:
<iframe sandbox="allow-top-navigation" src="http://google.com/"></iframe>
sandbox
แอตทริบิวต์ช่วยให้ชุดพิเศษของข้อ จำกัด <iframe>
สำหรับเนื้อหาในส่วน มูลค่าของsandbox
ทรัพย์สินลบข้อ จำกัด เฉพาะ ดังนั้นระวังด้วยการใช้คุณสมบัตินี้ w3schools.com/tags/att_iframe_sandbox.asp
สิ่งนี้จะแก้ปัญหาความทุกข์ยาก
<script>parent.location='http://google.com';</script>
หากคุณต้องการเปลี่ยนเส้นทางไปยังโดเมนอื่นโดยที่ผู้ใช้ไม่ต้องทำอะไรเลยคุณสามารถใช้ลิงค์ที่มีคุณสมบัติได้:
target="_parent"
ตามที่กล่าวไว้ก่อนหน้านี้แล้วใช้:
document.getElementById('link').click();
เพื่อให้มันเปลี่ยนเส้นทางโดยอัตโนมัติ
ตัวอย่าง:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<a id="link" target="_parent" href="outsideDomain.html"></a>
<script type="text/javascript">
document.getElementById('link').click();
</script>
</body>
</html>
หมายเหตุ: คำสั่ง javascript click () ต้องมาหลังจากที่คุณประกาศลิงก์
เป็นไปได้ที่จะเปลี่ยนเส้นทางจาก iframe แต่ไม่สามารถรับข้อมูลจากพาเรนต์
ลองใช้
window.parent.window.location.href = 'http://google.com'
parent.location = 'url'
window.top.location.href = 'index.html';
นี่จะเปลี่ยนเส้นทางหน้าต่างหลักไปยังหน้าดัชนี ขอบคุณ
เราต้องใช้ window.top.location.href เพื่อเปลี่ยนเส้นทางหน้าต่างหลักจากการกระทำ iframe
เปลี่ยนเส้นทาง iframe ในหน้าต่างหลักโดย iframe ในพาเรนต์เดียวกัน:
window.parent.document.getElementById("content").src = "content.aspx?id=12";
IFrame
มากเกินไป เนื่องจากคำตอบที่ยอมรับนั้นอยู่ที่หน้าต่างด้านบนฉันขอแนะนำให้คุณเปลี่ยนคำถามเล็กน้อย