كائن النافذة هو كائن المستوى الأعلى في نموذج كائن متصفح JavaScript ويحتوي على العديد من الأساليب والخصائص الشائعة:
1 فتح نافذة جديدة
انسخ رمز الكود كما يلي:
window.open(pageURL,اسم,معلمات)
في:
pageURL هو مسار النافذة الفرعية
الاسم هو مقبض النافذة الطفل
المعلمات هي معلمات نافذة (يتم فصل كل معلمة بفواصل)
يحب:
انسخ رمز الكود كما يلي:
window.open("http://www.cnblogs.com/zhouhb/"،"open"،'height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars= no,resizable=no,location=no,status=no');
2 افتح النافذة المشروطة
انسخ رمز الكود كما يلي:
window.showModalDialog("http://www.cnblogs.com/zhouhb/"،"open"،toolbars=0;width=200;height=200");
3 أغلق النافذة دون ظهور مربع المطالبة
إذا لم يتم فتح صفحة الويب من خلال برنامج نصي (window.open())، قبل استدعاء البرنامج النصي window. Close() لإغلاق النافذة، يجب تعيين كائن window.opener على قيمة خالية، وإلا فإن المتصفح (IE7، IE8) سوف ينبثق موافق لإغلاق مربع الحوار.
انسخ رمز الكود كما يلي:
<لغة البرمجة = "جافا سكريبت">
وظيفة إغلاق النافذة ()
{
window.opener = null;
window.open('', '_self', '');
window.Close();
}
</script>
<input type='button' value='إغلاق النافذة' onClick="CloseWindow()">
أو
<input type = "button" value = "إغلاق النافذة" onClick = "window.opener = null;
window.open('', '_self', '');window.cloud()">
لإغلاق نافذة الإطار
انسخ رمز الكود كما يلي:
<لغة البرمجة = "جافا سكريبت">
وظيفة إغلاق النافذة ()
{
window.opener = null;
window.open('', '_top', '');
window.parent. Close();
}
</script>
4 استخدام كائن الموقع
انسخ رمز الكود كما يلي:
window.location.reload();// تحديث الصفحة الحالية
window.location.href="http://www.cnblogs.com/zhouhb/"; // تحميل الصفحات الأخرى
5 استخدام كائن التاريخ
انسخ رمز الكود كما يلي:
window.history.go(1);//إلى الأمام
window.history.go(-1);
6 يقوم النموذج الفرعي بتمرير القيم إلى النموذج الأصلي
6.1 طريقة بسيطة
(1) افتح النموذج الفرعي في النموذج الأصلي
انسخ رمز الكود كما يلي:
var str=window.showModalDialog("s.html");
إذا (شارع! = فارغة)
{
var v=document.getElementById("v");
v.value+=str;
}
(2) رمز النموذج الفرعي
انسخ رمز الكود كما يلي:
var v=document.getElementById("v");
window.parent.returnValue=v.value;
window.Close();
بالإضافة إلى ذلك، بالنسبة للنافذة المفتوحة بواسطة showModalDialog، يمكنك أيضًا تمرير القيم من خلال DialoArguments:
رمز النافذة الأم:
انسخ رمز الكود كما يلي:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<الرأس>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>مستند بدون عنوان</title>
<نوع البرنامج النصي = "نص/جافا سكريبت">
وظيفة opendialog ()
{
window.showModalDialog ("child.html"، window، "win"، "resable = false")؛ // هنا يتم تمرير كائن النافذة كمعلمة
}
</script>
</الرأس>
<الجسم>
<النموذج>
<نوع الإدخال = "نص" معرف = "اسم" />
<input type = "button" id = "open" value = "open" onclick = "opendialog ()"/>
</النموذج>
</الجسم>
</html>
رمز النافذة الفرعية:
انسخ رمز الكود كما يلي:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<الرأس>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>مستند بدون عنوان</title>
<نوع البرنامج النصي = "نص/جافا سكريبت">
تحديث الدالة ()
{
var pwin=window.dialogArguments;// تحصل النافذة الفرعية على المعلمات التي تم تمريرها
إذا (بوين! = غير محدد)
{
pwin.document.getElementById("name").value=document.getElementById("name").value;
}
}
</script>
</الرأس>
<الجسم>
<النموذج>
<نوع الإدخال = "نص" معرف = "اسم" />
<input type = "button" id = "update" value = "تحديث النافذة الرئيسية" عند النقر = "updateParent ()"/>
</النموذج>
</الجسم>
</html>
بالنسبة للنافذة المفتوحة بواسطة showModalDialog، يمكنك أيضًا تمرير القيمة من خلال window.returnValue:
النافذة الرئيسية:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي = "نص/جافا سكريبت">
وظيفة النافذة المفتوحة () {
var BankCard=window.showModalDialog("counter.html"،"،dialogWidth=400px;dialogHeight=200px");
تنبيه("كلمة مرور بطاقتك المصرفية هي "+bankCard+"/n");
}
</النص>
(2) فتح النافذة
انسخ رمز الكود كما يلي:
<الرأس>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>تمارين النافذة</TITLE>
<نوع البرنامج النصي = "نص/جافا سكريبت" لغة = "جافا سكريبت">
وظيفة إغلاق النافذة () {
window.returnValue=document.myform.cardPass.value;
window.Close();
}
</النص>
</الرأس>
<الجسم>
<اسم النموذج = "myform" action = "" طريقة = "post">
معلومات الحساب:<BR>
يرجى الاحتفاظ بمعلومات حسابك بشكل صحيح لتجنب الخسائر<BR>
رقم الحساب: <INPUT name="cardNum" type="text" size="40"><BR>
كلمة المرور: <INPUT name="cardPass" type="password" size="45"><BR>
<نوع الإدخال = "زر" اسم = "btn" قيمة = "تأكيد" onClick = "CloseWindow ()">
</فورم>
</الجسم>
6.2 مقدمة أكثر تفصيلاً
كما نعلم جميعًا، يمكن استخدام الدالة window.open() لفتح نافذة جديدة، فكيف يمكنك تمرير القيمة إلى النموذج الأصلي في النموذج الفرعي؟ .فتاحة.
على سبيل المثال، إذا قمنا بإنشاء نموذج جديد FatherPage.htm:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي = "نص/جافا سكريبت">
الدالةOpenChildWindow()
{
window.open('ChildPage.htm');
}
</script>
<نوع الإدخال = "نص" معرف = "txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
ثم في ChildPage.htm، يمكنك الوصول إلى العناصر الموجودة في النموذج الأصلي من خلال window.opener:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي = "نص/جافا سكريبت">
الدالة SetValue()
{
window.opener.document.getElementById('txtInput').قيمة
=document.getElementById('txtInput').value;
window.Close();
}
</script>
<نوع الإدخال = "نص" معرف = "txtInput" />
<input type = "button" value = "SetFather" onclick = "SetValue ()" />
في الواقع، أثناء فتح النموذج الفرعي، يمكننا أيضًا تعيين قيم لعناصر النموذج الفرعي، لأن وظيفة window.open ستعيد أيضًا مرجعًا إلى النموذج الفرعي، لذلك يمكن تعديل FatherPage.htm على النحو التالي:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي = "نص/جافا سكريبت">
الدالةOpenChildWindow()
{
فار الطفل = window.open('ChildPage.htm');
Child.document.getElementById('txtInput').قيمة
=document.getElementById('txtInput').value;
}
</script>
<نوع الإدخال = "نص" معرف = "txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
من خلال تحديد ما إذا كان مرجع النموذج الفرعي فارغًا، يمكننا أيضًا التحكم فيه لفتح نموذج فرعي واحد فقط:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي = "نص/جافا سكريبت">
فار طفل
الدالةOpenChildWindow()
{
إذا (! الطفل)
Child = window.open('ChildPage.htm');
Child.document.getElementById('txtInput').قيمة
=document.getElementById('txtInput').value;
}
</script>
<نوع الإدخال = "نص" معرف = "txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
وهذا وحده لا يكفي عند إغلاق النموذج الفرعي، يجب أيضًا مسح المتغير الفرعي للنموذج الأصلي، وإلا فلن يمكن إعادة فتح النموذج الفرعي بعد فتحه ثم إغلاقه:
انسخ رمز الكود كما يلي:
<body onunload="Unload()">
<نوع البرنامج النصي = "نص/جافا سكريبت">
الدالة SetValue()
{
window.opener.document.getElementById('txtInput').قيمة
=document.getElementById('txtInput').value;
window.Close();
}
وظيفة إلغاء التحميل ()
{
window.opener.child=null;
}
</script>
<نوع الإدخال = "نص" معرف = "txtInput" />
<input type = "button" value = "SetFather" onclick = "SetValue ()" />
</الجسم>