ฉันมี iframe และเพื่อเข้าถึงองค์ประกอบหลักฉันใช้รหัสต่อไปนี้:
window.parent.document.getElementById('parentPrice').innerHTML
วิธีรับผลลัพธ์เดียวกันโดยใช้ jquery
ปรับปรุง : หรือวิธีการเข้าถึงหน้าหลัก iFrame โดยใช้ jquery?
ฉันมี iframe และเพื่อเข้าถึงองค์ประกอบหลักฉันใช้รหัสต่อไปนี้:
window.parent.document.getElementById('parentPrice').innerHTML
วิธีรับผลลัพธ์เดียวกันโดยใช้ jquery
ปรับปรุง : หรือวิธีการเข้าถึงหน้าหลัก iFrame โดยใช้ jquery?
คำตอบ:
ในการค้นหาในพาเรนต์ของ iFrame ให้ใช้:
$('#parentPrice', window.parent.document).html();
พารามิเตอร์ที่สองสำหรับ wrapper $ () เป็นบริบทที่ต้องการค้นหา ค่าเริ่มต้นนี้เป็นเอกสาร
วิธีการเข้าถึงหน้าหลักของ iFrame โดยใช้ jquery
window.parent.document
jQuery เป็นห้องสมุดที่อยู่ด้านบนของ JavaScript ไม่ใช่การแทนที่ที่สมบูรณ์สำหรับมัน คุณไม่จำเป็นต้องแทนที่นิพจน์ JavaScript ล่าสุดทั้งหมดด้วยบางสิ่งที่เกี่ยวข้องกับ $
หากคุณต้องการค้นหาอินสแตนซ์ jQuery ในเอกสารพาเรนต์ (เช่นเพื่อเรียกใช้ฟังก์ชันยูทิลิตี้ที่มีให้โดยปลั๊กอิน) ให้ใช้หนึ่งในไวยากรณ์เหล่านี้:
window.parent.$
window.parent.jQuery
ตัวอย่าง:
window.parent.$.modal.close();
jQuery ได้รับการติดอยู่กับwindow
วัตถุและว่าสิ่งที่window.parent
เป็น
คุณสามารถเข้าถึงองค์ประกอบของหน้าต่างหลักจากภายใน iframe โดยใช้window.parent
สิ่งนี้:
// using jquery
window.parent.$("#element_id");
ซึ่งเหมือนกับ:
// pure javascript
window.parent.document.getElementById("element_id");
และถ้าคุณมี iframe ซ้อนกันมากกว่าหนึ่งรายการและคุณต้องการเข้าถึง iframe สูงสุดคุณสามารถใช้window.top
ดังนี้:
// using jquery
window.top.$("#element_id");
ซึ่งเหมือนกับ:
// pure javascript
window.top.document.getElementById("element_id");
ในหน้าต่างหลักใส่:
<script>
function ifDoneChildFrame(val)
{
$('#parentPrice').html(val);
}
</script>
และใน iframe src ให้ใส่:
<script>window.parent.ifDoneChildFrame('Your value here');</script>
ใช่มันใช้งานได้สำหรับฉันเช่นกัน
หมายเหตุ: เราจำเป็นต้องใช้ window.parent.document
$("button", window.parent.document).click(function()
{
alert("Functionality defined by def");
});
มันทำงานสำหรับฉันด้วยการบิดเล็กน้อย ในกรณีของฉันฉันต้องเติมค่าจากแบบฟอร์ม POPUP JS ไปยัง PARENT WINDOW
ดังนั้นฉันได้ใช้ $('#ee_id',window.opener.document).val(eeID);
ที่ดีเยี่ยม !!!
อาจจะเป็นเพียงเล็กน้อยปลายที่จะเล่นเกมที่นี่ แต่ผมเพิ่งค้นพบที่ยอดเยี่ยมนี้ jQuery ปลั๊กอินhttps://github.com/mkdynamic/jquery-popupwindow โดยทั่วไปจะใช้เหตุการณ์การโทรกลับของ unUnload ดังนั้นโดยทั่วไปจะคอยฟังการปิดหน้าต่างลูกและจะดำเนินการสิ่งที่จำเป็นในตอนนั้น ดังนั้นไม่จำเป็นต้องเขียน JS ใด ๆ ในหน้าต่างลูกเพื่อส่งกลับไปยังผู้ปกครอง
มีหลายวิธีในการทำสิ่งเหล่านี้
ฉัน) รับผู้ปกครองหลักโดยตรง
สำหรับ exa ฉันต้องการแทนที่หน้าย่อยของฉันเป็น iframe แล้ว
var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);
ที่นี่top.locationรับผู้ปกครองโดยตรง
II) รับพาเรนต์ทีละรายการ
var element = $('.iframe:visible', window.parent.document);
ที่นี่หากคุณมี iframe มากกว่าหนึ่งรายการจากนั้นระบุที่ใช้งานอยู่หรือที่มองเห็นได้
คุณสามารถทำสิ่งเหล่านี้เพื่อรับพ่อแม่ต่อไป
var masterParent = element.parent().parent().parent()
III) รับ parent โดย Identifier
var myWindow = window.top.$("#Identifier")