A.HTML:
<form name = "form1" method = "post" action = ""> <a href = "JavaScript: void (null)" onclick = "เปิด ('b.html', '', 'resizable = 1, scrollbars = 1, สถานะ = ไม่, toolbar = ไม่, เมนู = ไม่, width = 500 name = "text1"> </form>b.html:
<script language = "javascript" type = "text/javaScript"> function returnValue () {window.opener.document.all.text1.value = document.getElementById ("returnText") ค่า; window.close (); type = "text" id = "returntext"> </p>ภาคผนวก: การใช้ window.opener
โดยทั่วไปการใช้งานของหน้าต่างเปิดใช้งานเพื่อแก้ปัญหาที่หน้าต่างป๊อปอัพไม่ได้รับแจ้งเมื่อปิดหน้าต่าง แต่ความเข้าใจที่ลึกซึ้งยิ่งขึ้นโดยทั่วไปจะน้อยกว่า ในความเป็นจริง window.opener หมายถึงหน้าต่างที่เรียกวิธีการเปิดหน้าต่าง
ส่วนใหญ่จะใช้ในการแก้ปัญหาบางส่วนในการทำงาน การแพร่กระจายของหน้าประเภทนี้มีประโยชน์มากสำหรับการทำงาน
หากคุณเปิดหน้าเว็บในหน้าต่างหลักและต้องการให้หน้าต่างหลักรีเฟรชใช้สิ่งนี้ตัวเปิดหน้าต่างที่เปิดหน้าจะเทียบเท่ากับ
หน้าต่างของหน้าต่างหลัก
คุณสามารถใช้การรีเฟรชของหน้าต่างหลัก
window.opener.location.reload ();
หากคุณใช้ไดเรกทอรีเสมือนจริง: เช่น struts*.do คุณจะแจ้งให้คุณลองอีกครั้ง
คุณสามารถเปลี่ยนเป็น window.opener.yourformname.submit ()
ไม่เป็นไร
2〉
มีสถานการณ์เช่นนี้ในแอปพลิเคชัน
เปิดหน้าต่าง B ในหน้าต่าง A ปิดหน้าต่าง B หลังจากการทำงานในหน้าต่าง B และรีเฟรชหน้าต่าง A โดยอัตโนมัติ
ฟังก์ชั่น closewin () {hasclosed = true; window.opener.location = "javascript: reloadpage ();"; window.close ();} window.onbeforeunload () {ถ้า (! hasclosed) {window.opener.location = "javascriptรหัสด้านบนจะแจ้งข้อผิดพลาดเมื่อปิดหน้าต่าง B โดยบอกว่าวัตถุหายไปและรหัสที่ถูกต้องมีดังนี้:
ฟังก์ชั่น closewin () {hasclosed = true; window.opener.location = "JavaScript: reloadPage ();"; window.opener = null; window.close ();} ฟังก์ชั่นหน้าต่างฟังก์ชั่น foreunload () {ถ้า (! hasclosed) {// window.opener.location = "JavaScript: reloadPage ();";}} </script> วิธีการ reloadpage มีดังนี้: ฟังก์ชั่น reloadpage () {history.go (0); document.execommand ("รีเฟรช") document.location = document.location;PS: เนื่องจากมีความจำเป็นต้องสนับสนุนการปิดปกติและการปิดหน้าต่างที่ถูกบังคับให้ใช้ตัวแปรส่วนกลาง hasclosed
-
นอกจากนี้ปัญหาจะเกิดขึ้นเมื่อรีเฟรชหน้าต่างหลักเมื่อหน้าต่างแม่เป็นเฟรม:
หน้าไม่สามารถรีเฟรชได้โดยไม่ต้องส่งข้อมูลอีกครั้ง
การแก้ไขต่อไปนี้มีดังนี้:
window.opener.parent.document.frames.item ('mainframe'). location.href = window.opener.location.href;
ไม่จำเป็นต้องดำเนินการวิธีการโหลดซ้ำ () ในตัว ระวังอย่าเพิ่มประโยคนี้:
window.opener.parent.document.frames.item ('เมนเฟรม'). location.reload ();
- -
ในที่สุดเพื่อรองรับการรีเฟรชทั้งหน้าต่างแม่ปกติและหน้าต่างแม่เฟรมรหัสมีดังนี้:
ฟังก์ชั่น closewin () {hasclosed = true; <%ถ้า (null! = frame) {%> window.opener.parent.document.frames.item ('mainframe'). location.href = window.opener.location.href; "JavaScript: ReloadPage ();"; <%}%> // window.opener.top.mainframe.location = "javascript: reloadpage ();"; // self.opener.frames.mainframe.location.location.location.reload (จริง); window.opener = null; {<%ถ้า (null! = frame) {%> window.opener.parent.document.frames.item ('mainframe'). location.href = window.opener.location.href; <%} อื่น {%> window.opener.location = "javascript: reloadpage ();วิธีใช้ window.opener
window.opener ส่งคืนการอ้างอิงไปยังหน้าต่างที่สร้างหน้าต่างปัจจุบันตัวอย่างเช่นคลิกลิงก์บน A.HTM และเปิด b.htm จากนั้นเราวางแผนที่จะป้อนค่าบน b.htm จากนั้นกำหนดให้กับกล่องข้อความที่มี id "ชื่อ" บน a.htm จากนั้นเขียนเป็น:
window.opener.document.getElementById ("ชื่อ"). value = "ข้อมูลอินพุต";
ไม่มีความเข้าใจที่ดีเกี่ยวกับ window.opener ใน JavaScript
ทำไมมันไม่สามารถใช้ในเฟรมได้? หน้าต่างหลักของหน้าต่างป๊อปอัปไม่สามารถอยู่ในหน้าหนึ่งในเฟรมได้หรือไม่? ดังนั้นคุณจะใช้งานหน้าต่างพาเรนต์ในเฟรมผ่านหน้าต่างป๊อปอัพได้อย่างไร?
opener.parent.frames ['framename']. document.all.input1.value ลองสิ่งนี้ :)
หากคุณต้องการเปลี่ยนหน้าในเฟรมเฟรมไปยังหน้าอื่น ๆ ภายใต้เฟรมหรือหน้าเดียวกันในเฟรมแม่ให้ใช้พาเรนต์
window.opener หมายถึงหน้าหลักของหน้าเปิดโดย window.open
วัตถุ window.frames สามารถอ้างถึงหน้าเว็บใน iframe หรือหน้าในเฟรมชุด
สามารถ
window.frames [0] .document.getElementById ('xx');
สามารถ
window.frames [0] .document.body.innerhtml;
frm = window.parent.window.frames ['UploadFrame'];
frmDocument = frm.document;
FRM.SB (3); // SB เป็นฟังก์ชั่นในหน้า UploadFrame
สำหรับ Firefox
หากคุณพบข้อผิดพลาด: parent.document.frames ไม่มีคุณสมบัติ
เพียงเปลี่ยนรหัสต่อไปนี้ รหัสนี้เข้ากันได้กับ IE และ FF frm = window.parent.window.frames ['UploadFrame']; ในความเป็นจริงคอลเลกชันเฟรมไม่ได้ถูกแขวนไว้ในเอกสาร แต่อยู่ในวัตถุหน้าต่าง
โปรดทราบว่ามีข้อ จำกัด ในการแก้ไขหน้าในเฟรมด้วยวิธีนี้นั่นคือมันจะต้องอยู่ในโดเมนเดียวกันมิฉะนั้นจะไม่สามารถเข้าถึงได้
หากอยู่ภายใต้โดเมนเดียวกัน แต่ชื่อโดเมนย่อยแตกต่างกันจากนั้นเพิ่มประโยคลงในไฟล์ JS และ HTML ที่เกี่ยวข้อง
document.domain = xxx.com [กรอกชื่อโดเมนของคุณที่นี่] document.getElementById ('iframeId'). contentWindow.document.getElementById ('omeElementId');
ถาม:
ในหน้าต่างหน้าต่างแม่เปิด () หน้าต่างเด็ก และกำหนดตัวแปร i
ป้อนค่า j ในหน้าต่างเด็กและ window.opener.i = j;
วิธีนี้สามารถผ่านได้ แต่ฉันเพิ่ม window.close () ในตอนท้ายของหน้าต่างเด็กและไม่สามารถผ่านค่าได้
มีวิธีแก้ปัญหานี้หรือไม่? ทำให้ฉันผ่านมูลค่าก่อนปิดหน้าต่างเด็ก
รหัสมีดังนี้:
หน้าต่างหลัก: parent.jsp
<script> var i; window.open ('<%= contextpath%>/usermanage/newsControl/cd.jsp); </script> <อินพุต type = "ปุ่ม" onclick = "การแจ้งเตือน (i)">หน้าต่างย่อย: cd.jsp
<script> ฟังก์ชั่น subm () {window.opener.i = 5; window.close ();} </script> <อินพุต type = "ปุ่ม" onclick = "subm ()">1 คำตอบ
คุณสามารถใส่หนึ่งในหน้าต่างหลัก
<อินพุต id = "fromchild" type = "hidden" /> <อินพุต type = "ปุ่ม" onclick = "การแจ้งเตือน (document.getElementById ('fromchild'). ค่า)"ในหน้าต่างเด็ก:
ฟังก์ชั่น subm () {window.opener.document.getElementById ('fromchild'). value = 5; window.close ();}นี่ก็โอเค
<head> <script language = javascript> ฟังก์ชั่น windowclose () {window.opener = null; window.close ();} </script> </head> <body> <อินพุต id = "button1" type = "button" value = "ปุ่ม" onclick = "windowclose ()"/> </body>ตัวอย่างง่าย ๆ ข้างต้นของค่าส่งคืนของหน้าต่างป๊อปอัพ JS คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น