ฉันต้องเปิดลิงก์ในหน้าหลักเดียวกันแทนที่จะเปิดในหน้าใหม่
หมายเหตุ: iframe
หน้าพ่อแม่ที่มีโดเมนเดียวกัน
ฉันต้องเปิดลิงก์ในหน้าหลักเดียวกันแทนที่จะเปิดในหน้าใหม่
หมายเหตุ: iframe
หน้าพ่อแม่ที่มีโดเมนเดียวกัน
คำตอบ:
ฉันพบทางออกที่ดีที่สุดคือการใช้แท็กฐาน เพิ่มสิ่งต่อไปนี้ในส่วนหัวของหน้าใน iframe:
<base target="_parent">
การดำเนินการนี้จะโหลดลิงก์ทั้งหมดบนหน้าในหน้าต่างหลัก หากคุณต้องการให้ลิงค์โหลดในหน้าต่างใหม่ให้ใช้:
<base target="_blank">
แท็กนี้ได้รับการสนับสนุนอย่างสมบูรณ์ในเบราว์เซอร์ทั้งหมด
<base target>
ควรมาก่อน<a href>
เพราะตั้งค่าบริบทการสืบค้นเริ่มต้นสำหรับลิงก์ต่อไปนี้ <base href>
ควรมาก่อนการอ้างอิง URL ( <* href>
<* src>
<form action>
<object data>
…) ใด ๆเนื่องจากจะตั้งค่า URL หลักที่จะแก้ไข URL ที่เกี่ยวข้อง
<base
แท็กไม่มีการปิดตามข้อกำหนดw3.org/TR/html5/document-metadata#the-base-elementดังนั้นจึงควรเป็น<base target="_parent" >
ใช้ target-attribute:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
ก็โอเค แต่คำถามที่นี่เกี่ยวกับลิงค์เดียวไม่ใช่เกี่ยวกับการเปลี่ยนพฤติกรรมของลิงก์ทั้งหมดใน iframe สำหรับฉันนี่คือคำตอบที่ถูกต้อง
ด้วย JavaScript:
window.parent.location.href= "http://www.google.com";
คุณสามารถใช้ตัวเลือกใด ๆ
ในกรณีที่เป็นเพจระดับบนเท่านั้น:
หากคุณต้องการเปิดลิงก์ทั้งหมดในหน้าหลักหรือ iframe พาเรนต์คุณต้องใช้รหัสต่อไปนี้ในส่วนหัวของ iframe:
<base target="_parent" />
หรือ
หากคุณต้องการเปิดลิงก์เฉพาะในเพจระดับบนหรือพาเรนต์ iframe ให้ใช้วิธีต่อไปนี้:
<a target="_parent" href="http://specific.org">specific Link</a>
<a href="http://normal.org">Normal Link</a>
หรือ
ในกรณีที่ iframe ซ้อนกัน:
หากต้องการเปิดลิงก์ทั้งหมดเข้าไปในหน้าต่างเบราว์เซอร์ (เปลี่ยนเส้นทางใน URL ของเบราว์เซอร์) จากนั้นคุณใช้รหัสต่อไปนี้ในส่วนหัวของ iframe:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
</script>
หรือ
หากคุณต้องการเปิดลิงก์เฉพาะในหน้าต่างเบราว์เซอร์ (เปลี่ยนเส้นทางใน URL เบราว์เซอร์) จากนั้นคุณใช้วิธีต่อไปนี้:
<a href="http://specific.org" target="_top" >specific Link</a>
หรือ
<a href="javascript:top.window.location.href='your_link'">specific Link</a>
<a href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a href="http://normal.org">Normal Link</a>
ตามที่ระบุไว้คุณสามารถใช้แอตทริบิวต์ target แต่เลิกใช้เทคนิคใน XHTML นั่นทำให้คุณใช้จาวาสคริปต์ซึ่งมักจะเป็นเช่นparent.window.location
นั้น
target
แอตทริบิวต์จะไม่เลิก
ลองtarget="_parent"
แอตทริบิวต์anchor tag
ภายใน
หากคุณใช้ iframe ในหน้าเว็บของคุณคุณอาจประสบปัญหาในขณะที่เปลี่ยนทั้งหน้าผ่านทางไฮเปอร์ลิงก์ HTML (แท็กจุดยึด) จาก iframe มีสองวิธีในการลดปัญหานี้
การแก้ไข 1. คุณสามารถใช้แอตทริบิวต์ target ของ anchor tag ตามที่กำหนดในตัวอย่างต่อไปนี้
<a target="_parent" href="http://www.kriblog.com">link</a>
โซลูชันที่ 2 คุณยังสามารถเปิดหน้าใหม่ในหน้าต่างหลักจาก iframe ด้วย JavaScript
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
จำ⇒ target="_parent"
เลิกใช้แล้วใน XHTML แต่ก็ยังรองรับใน HTML 5.x
สามารถอ่านเพิ่มเติมได้จากลิงค์ต่อไปนี้ http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
โซลูชันที่หลากหลายและหลากหลายที่สุดของเบราว์เซอร์คือหลีกเลี่ยงการใช้แท็ก "ฐาน" และใช้แอตทริบิวต์เป้าหมายของแท็ก "a" แทน:
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>
แท็กน้อยหลากหลายและเบราว์เซอร์จะไม่สอดคล้องกันในความต้องการของพวกเขาสำหรับตำแหน่งภายในเอกสารที่ต้องทดสอบเบราว์เซอร์อื่น ๆ ขึ้นอยู่กับโครงการและสถานการณ์ของคุณอาจเป็นเรื่องยากหรือไม่สามารถทำได้โดยสิ้นเชิงเพื่อให้ได้การจัดวาง<base>
แท็กข้ามเบราว์เซอร์ในอุดมคติ
การทำสิ่งนี้ด้วยtarget="_parent"
คุณสมบัติของ<a>
แท็กไม่เพียง แต่เป็นมิตรกับเบราว์เซอร์เท่านั้น แต่ยังช่วยให้คุณสามารถแยกแยะความแตกต่างระหว่างลิงก์ที่คุณต้องการเปิดใน iframe และสิ่งที่คุณต้องการเปิดในพาเรนต์
<a target="parent">
จะเปิดลิงก์ในแท็บ / หน้าต่างใหม่ ... <a target="_parent">
จะเปิดลิงก์ในหน้าต่างหลัก / ปัจจุบันโดยไม่ต้องเปิดแท็บ / หน้าต่างใหม่ Don't_forget_that_underscore!
ฉันพบแล้ว
<base target="_parent" />
สิ่งนี้มีประโยชน์สำหรับการเปิดลิงก์ iframe ทั้งหมดเปิดใน iframe
และ
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
สิ่งนี้เราสามารถใช้ได้ทั้งหน้าหรือบางส่วนของหน้า
ขอบคุณสำหรับความช่วยเหลือของคุณ
ลอง target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
เหมือนกัน"_parent"
หรือ
<script type="text/javascript"> // if site open in iframe then redirect to main site
$(function(){
if(window.top.location != window.self.location)
{
top.window.location.href = window.self.location;
}
});
</script>