A.HTML:
<name form = "form1" method = "post" action = ""> <a href = "javaScript: void (null)" onClick = "Open ('b.html' ، '' ، 'resizable = 1 ، scrollbars = 1 ، status = no ، bricbar = no ، menu = no ، width = 500 ، left = 400 ، left = 150 ، exted <" NAME = "Text1"> </pother>B.HTML:
<script language = "javaScript" type = "text/javaScript"> function returnvalue () {window.opener.document.all.text1.value = document.getElementById ("returntext"). value ؛ name = "returntext" type = "text" id = "returntext"> </p>الملحق: استخدام Window.Opener
بشكل عام ، يستخدم استخدام النافذة. فقط لحل المشكلة التي لا يُطلب من النافذة المنبثقة عند إغلاق نافذة ، ولكن الفهم الأعمق لها أقل عمومًا. في الواقع ، يشير Window.Opener إلى النافذة التي تستدعي طريقة window.Open.
يستخدم بشكل أساسي لحل التقديمات الجزئية في العمل. هذا النوع من انتشار الصفحة مفيد للغاية للعمل.
إذا قمت بفتح صفحة في النافذة الرئيسية وترغب في تحديث النافذة الرئيسية ، فاستخدم هذا ، النافذة. opener التي تفتح الصفحة تعادل
نافذة النافذة الرئيسية.
يمكنك استخدام تحديث النافذة الرئيسية
window.opener.location.reload () ؛
إذا كنت تستخدم دليلًا افتراضيًا: مثل الدعامات*.do ، فستطالبك بالمحاولة مرة أخرى
يمكنك تغييره إلى window.opener.yourformName.submit ()
هذا جيّد
2〉
هناك مثل هذا الموقف في التطبيق ،
افتح النافذة B في النافذة A ، إغلاق النافذة B بعد التشغيل في النافذة B ، وتحديث النافذة تلقائيًا
الوظيفة closewin () {hasclosed = true ؛ window.opener.location = "javaScript: RELOADPAGE () ؛" ؛ window.close () ؛} function window.onbeforeunload () {if (! hasclosed>سيؤدي الرمز أعلاه إلى خطأ عند إغلاق النافذة B ، قائلاً إن الكائن مفقود ، والرمز الصحيح هو كما يلي:
الوظيفة Closewin () {hasclosed = true ؛ window.opener.location = "javaScript: reloadpage () ؛" ؛ window.opener = null ؛ window.close () ؛ window.opener.location = "javaScript: reloadpage () ؛ملاحظة: نظرًا لأنه من الضروري دعم الإغلاق العادي والإغلاق القسري للنافذة ، يتم استخدام المتغير العالمي.
===============================================================
بالإضافة إلى ذلك ، ستحدث المشكلات عند تحديث النافذة الأصل عندما تكون النافذة الأصل إطارًا:
لا يمكن تحديث الصفحة دون إعادة بيع المعلومات.
التعديلات التالية هي كما يلي:
window.opener.parent.document.frames.item ('mainframe'). location.href = window.opener.location.href ؛
ليست هناك حاجة لتنفيذ طريقة إعادة التحميل المدمجة (). احرص على عدم إضافة هذه الجملة:
window.opener.parent.document.frames.item ('mainframe'). location.reload () ؛
============================================================= =============================================================
أخيرًا ، من أجل دعم تحديث كل من النافذة الأصل العادية ونافذة الإطار الأصل ، يكون الرمز كما يلي:
الوظيفة Closewin () {hasclosed = true ؛ <٪ if (null! = frame) {٪> window.opener.parent.document.iTem.Item ('mainframe'). location.href = window.opener.location.href ؛ <٪} ell {٪> window.location = "javaScript: reloadpage () ؛ {<٪ if (null! = frame) {٪> window.opener.parent.document.frames.item ('mainframe'). location.href = window.opener.location.href ؛ <٪} else {٪> window.opener.location = "javaScript: reloadpage () ؛" ؛كيفية استخدام Window.Opener
Window.Opener إرجاع مرجع إلى النافذة التي تنشئ النافذة الحالية ، على سبيل المثال ، النقر على رابط على A.HTM وفتح B.HTM. ثم نخطط لإدخال قيمة على B.HTM ثم تعيينها إلى مربع نص مع معرف "اسم" على A.HTM ، ثم اكتبها على النحو التالي:
window.opener.document.getElementByid ("name"). value = "بيانات الإدخال" ؛
لا يوجد فهم جيد للنافذة. فتح في JavaScript.
لماذا لا يمكن استخدامه في الإطار؟ لا يمكن أن تكون النافذة الأصل للنافذة المنبثقة على صفحة معينة في الإطار؟ فكيف تعمل النافذة الأصل في الإطار من خلال نافذة منبثقة؟
epener.parent.frames ['FramEname']. document.all.input1.value حاول هذا :)
إذا كنت ترغب في تغيير الصفحة في إطار الإطار إلى صفحات أخرى تحت نفس الإطار أو الصفحات في الإطار الأصل ، فاستخدم الأصل
يشير Window.Opener إلى الصفحة الأصل للصفحة التي تم فتحها بواسطة Window.Open.
يمكن أن يشير كائن Window.flames إلى الصفحة في 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 هي وظيفة في صفحة التحميل
ل Firefox
إذا واجهت خطأ: parent.document.frames ليس له خصائص
فقط التغيير إلى الكود التالي. هذا الرمز متوافق مع IE و FF. frm = window.parent.window.frames ['UploadFrame'] ؛ في الواقع ، لا يتم تعليق مجموعة Frames في المستند ولكن في كائن النافذة.
لاحظ أن هناك قيودًا على تعديل الصفحة في الإطار بهذه الطريقة ، أي يجب أن تكون في نفس المجال ، وإلا فلن يكون متاحًا.
إذا كان تحت نفس المجال ولكن أسماء النطاق الفرعي مختلف ، فأضف جملة إلى ملفات JS و HTML المعنية.
document.domain = xxx.com [املأ اسم المجال الخاص بك هنا] document.getElementById ('iframeid'). contentWindow.document.getElementById ('somelementid') ؛
بسأل:
في نافذة الأصل. open () نافذة طفل. وتحديد متغير أنا.
أدخل قيمة j في نافذة الطفل و Window.Opener.i = j ؛
بهذه الطريقة يمكن أن تمر. لكنني أضفت window.close () في نهاية نافذة الطفل ولم أستطع تمرير القيمة.
هل هناك طريقة لحل هذه المشكلة؟ اجعلني أجبر القيمة قبل إغلاق نافذة الطفل.
الرمز كما يلي:
النافذة الأصل: Parent.JSP
<script> var i ؛ window.open ('<٪ = contextpath ٪>/usermanage/newscontrol/cd.jsp) ؛ </script> <type type = "button" onClick = "Alert (i)">الرياح الفرعية: CD.JSP
<script> function subm () {window.opener.i = 5 ؛ window.close () ؛} </script> <input type = "button" onClick = "subm ()">1 إجابة
يمكنك وضع واحدة في النافذة الأصل
<input id = "fromchild" type = "hidden" /> <input type = "button" onClick = "Alert (document.getElementById ('fromchild'). value)">في نافذة الطفل:
الدالة subm () {window.opener.document.getElementByid ('fromchild'). value = 5 ؛ window.close () ؛}هذا جيد
<Head> <script language = javaScript> function windowclose () {window.opener = null ؛ window.close () ؛} </script> </head> <body> <input id = "button1" type = "button" value = "button" onClick = "windowClose ()"/> </body>المثال البسيط أعلاه لقيمة إرجاع نافذة JS المنبثقة هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.