หน้าต่างพ่อ:
คัดลอกรหัสรหัสดังนี้:
<html>
<head>
<tite> หน้าไม่ใช่ -title </title>
<script language = "javascript" type = "text/javascript">
ฟังก์ชั่น opendialog1 ()
-
var somevalue = widow.showmodaldialog ("b.html", "", "dialogwidth = 500px; dialogheight = 500px; status = no; help = no; scrollbars = no");
document.form1.p1t.value = somevalue;
-
</script>
</head>
<body>
<form name = "form1" action = "#">
<อินพุต type = "text" name = "p1t">
<อินพุต type = "ปุ่ม" value = "เปิดกล่องโต้ตอบ" onclick = "opendialog1 ()">
</form>
</body>
</html>
sub -window:
คัดลอกรหัสรหัสดังนี้:
<html>
<head>
<tite> หน้าไม่ใช่ -title </title>
<script language = "javascript" type = "text/javascript">
ฟังก์ชั่น A ()
-
var wname = document.form1
parent.window.returnvalue = wname;
window.close ();
-
</script>
</head>
<body>
<form name = "form1" action = "" >>
<อินพุต type = "text" value = "ป้อนค่าที่จะส่ง" name = "backname" >>
<อินพุต type = "ปุ่ม" value = "pass" onclick = "return a ()">
</form>
</body>
</html>
---- 1. ไวยากรณ์พื้นฐาน
---- วัตถุหน้าต่างมีวิธีที่เรียกว่า showmodaldialog
<ปุ่ม onclick = "window.showmodaldialog
('dialog.htm') "> ค้นหา </button>
---- ระบบจะเปิดหน้า Dialog.htm ในหน้าต่างใหม่และรอให้ผู้ใช้ตอบกลับ
---- ตั้งค่าคุณสมบัติ returnValue ของวัตถุหน้าต่างใน Dialog.htm เพื่อให้โฮมเพจได้รับค่าส่งคืน ตัวอย่างเช่นเขียนใน onclick ของปุ่มที่กำหนดของหน้า:
window.returnvalue = หน้าต่าง
document.all.itpeoplid.value
---- เพิ่มขีดความสามารถของกล่องอินพุต iptpeopleid ไปยังคุณสมบัติ returnValue ของวัตถุหน้าต่าง ค่านี้สามารถรับได้ในหน้าแรก:
var str = showmodaldialog ("dialog1.htm")
---- 2. ผ่านค่าการเริ่มต้น
---- หากคุณต้องการส่งค่าเริ่มต้นไปยังหน้า modal คุณสามารถใช้คำสั่งต่อไปนี้ในหน้าแรก:
var csearchValue = showmodaldialog
('Dialog.htm', 'ABC')
ใช้ window.dialogarguments ใน Dialog.htm
คุณลักษณะสามารถรับ 'ABC' ตัวอย่างเช่น:
<script for = window event = "jscript">
if (window.dialogarguments! = null)
window.document.all.iptpeoplid.value = window.dialogarguments;
</script>
---- 3. ผ่านหลายค่า
---- หากคุณต้องการผ่านพารามิเตอร์หลายตัวไปยังหน้าโมดอลคุณสามารถกำหนดวัตถุในหน้าแรกได้ก่อน
ฟังก์ชั่น mydialog () {
var str1;
var str2;
-
---- แสดงเป้าหมายก่อนที่จะแสดงหน้าแบบแยกส่วนจากนั้นเรียกใช้วิธี showmodaldialog
Function welcomeyou (inistr1, inistr2) {{
myDialog.str1 = inistr1;
myDialog.str2 = inistr2;
ifmodaldialog ("Dialog2.htm", myDialog)
== เท็จ) //
-
---- ในหน้ารุ่นคุณสามารถใช้รหัสนี้ได้
window.document.all.iptid.value =
window.dialogarguments.str1
เพื่ออ้างอิงค่าหรือใช้รหัสนี้เพื่อกำหนดค่าให้กับ
window.dialogarguments.str1 =
window.document.all.iptid.value
---- กิจวัตรที่สมบูรณ์มีดังนี้:
---- สำหรับพารามิเตอร์เดียวเท่านั้นดู: main1.htm และ dialog1.htm
---- สำหรับสถานการณ์ของการผ่านพารามิเตอร์หลายตัวดู: main2.htm และ dialog2.htm
หน้าต่างพ่อ:
ค่าส่งคืน xxx 'dim
พารามิเตอร์ Dim Yyy 'ส่งผ่านไปยังหน้าต่างเด็ก
var xxx = showmodaldialog ('xxx.asp', 'yyy', 'dialogwidth: 100px; dialogheight = 290px; สถานะ: ไม่')
sub -window:
พารามิเตอร์ของ Dim Yyy จากหน้าต่างพ่อ
พารามิเตอร์ dim xxx ของหน้าต่างพ่อ
yyy = window.dialogarguments
xxx = window.returnvalue
การใช้ Window.dialogarguments
JavaScript มีวิธีการที่สร้างขึ้นมากมายในการสร้างกล่องโต้ตอบเช่น: window.alert (), window.confirm (), window.prompt () อย่างไรก็ตาม IE มีวิธีเพิ่มเติมในการสนับสนุนกล่องโต้ตอบ ชอบ:
showmodaldialog () (IE4+สนับสนุน)
showmodelessDialog () (IE5+สนับสนุน)
Window.ShowModaldialog () ใช้เพื่อสร้างกล่องโต้ตอบแบบแยกส่วนที่แสดงเนื้อหา HTML
Window.ShowModelessDialog () ใช้เพื่อสร้างกล่องโต้ตอบที่ไม่ใช่โมดูลที่แสดงเนื้อหา HTML
เมื่อเราเปิดหน้าต่างด้วย showmodelessDialog () ไม่จำเป็นต้องใช้ window.close () เพื่อปิด คือกล่องโต้ตอบไม่เหมือนกันเสมอไปมันเป็นจุดโฟกัสสูงสุด กล่องโต้ตอบของวิธี Modal [IE4] มักจะมีโฟกัสอยู่เสมอ (ไม่สามารถลบโฟกัสได้จนกว่าจะปิด) กล่องโต้ตอบโมดอลเชื่อมต่อกับหน้าต่างของหน้าต่างดังนั้นเมื่อเราเปิดหน้าต่างอื่นความสัมพันธ์ลิงก์ของพวกเขายังคงถูกเก็บรักษาไว้และซ่อนอยู่ภายใต้หน้าต่างเหตุการณ์
วิธีการใช้งานมีดังนี้:
VreturnValue = Window.ShowModaldialog (surl [, varguments] [, sfeatures])))
vreturnValue = window.showModelessDialog (surl [, varguments] [, sfeatures]))))))))))))))))))))))
คำอธิบายพารามิเตอร์:
Surl
ต้องใช้พารามิเตอร์ประเภท: สตริง URL ที่ใช้เพื่อระบุเอกสารที่จะแสดงในกล่องโต้ตอบ
varguments
พารามิเตอร์เสริมประเภท: ตัวแปร ใช้เพื่อส่งผ่านพารามิเตอร์ไปยังกล่องโต้ตอบ ประเภทพารามิเตอร์ที่ส่งผ่านไม่ จำกัด รวมถึงอาร์เรย์ ฯลฯ กล่องโต้ตอบได้รับพารามิเตอร์ที่ส่งผ่านผ่าน Window.dialogarguments
sfeatures
พารามิเตอร์เสริมประเภท: สตริง ใช้เพื่ออธิบายลักษณะที่ปรากฏและข้อมูลอื่น ๆ ของกล่องโต้ตอบคุณสามารถใช้หนึ่งหรือมากกว่าด้านล่างและใช้เซ็กเมนต์ ";" เพื่อแยก
กล่องโต้ตอบกล่องโต้ตอบ Dialogheight ไม่น้อยกว่า 100px, Dialogheight และ Dialogwidth ใน IE4 คือ EM และ IE5 คือ PX ซึ่งสะดวกสำหรับวิธีการ Modal ในการใช้ PX เป็นหน่วย
Dialogwidth: กล่องโต้ตอบความกว้าง
Dialogleft: ระยะทางจากด้านซ้ายของเดสก์ท็อป
บทสนทนา: ระยะทางจากเดสก์ท็อป
ศูนย์: ใช่ | ไม่ |
Help: {ใช่ |
resizable: {ใช่ | หมายเลขเริ่มต้น
สถานะ: {ใช่ | ค่าเริ่มต้นคือใช่ [modeless] หรือไม่มี [modal]
Scroll: {ใช่ | ค่าเริ่มต้นคือใช่
มีคุณลักษณะหลายอย่างที่ใช้ใน HTA ซึ่งโดยทั่วไปไม่ได้ใช้ในหน้าเว็บทั่วไป
Dialoghide: {ใช่ | ค่าเริ่มต้นคือไม่
Edge: {Sunken | ยก}: ระบุสไตล์เฟรมของกล่องโต้ตอบ ค่าเริ่มต้นคือการเพิ่ม
unadorned: ใช่
พารามิเตอร์ผ่าน:
หากคุณต้องการผ่านพารามิเตอร์ของกล่องโต้ตอบมันจะถูกส่งผ่าน Varguments ประเภทไม่ จำกัด นอกจากนี้คุณยังสามารถผ่านวัตถุได้เช่น:
test1.htm
-
<script>
varmxh1 = newarray ("mxh", "net_lover", "Mencius E บท")
varmxh2 = window.open ("เกี่ยวกับ: blank", "window_mxh")
// ส่งอาร์เรย์ไปยังกล่องโต้ตอบ
window.showmodaldialog ("test2.htm", mxh1)
// ส่งวัตถุหน้าต่างไปยังกล่องโต้ตอบ
window.showmodaldialog ("test3.htm", mxh2)
</script>
test2.htm
-
<script>
vara = window.dialogarguments
การแจ้งเตือน ("พารามิเตอร์ที่คุณผ่านคือ:"+a)
</script>
test3.htm
-
<script>
vara = window.dialogarguments
การแจ้งเตือน ("พารามิเตอร์ที่คุณผ่านคือวัตถุหน้าต่างชื่อ:"+a.name)
</script>
คุณสามารถส่งคืนข้อมูลไปยังหน้าต่างของกล่องโต้ตอบผ่านหน้าต่างการกลับมาใช้แน่นอนว่ามันสามารถเป็นวัตถุได้ ตัวอย่างเช่น:
test4.htm
-
<script>
vara = window.showmodaldialog ("test5.htm")
สำหรับ (i = 0; i <a.length; i ++) แจ้งเตือน (a [i])
</script>
test5.htm
-
<script>
functionsendto ()
-
vara = newaray ("a", "b")
window.returnvalue = a
window.close ()
-
</script>
<body>
<form>
<inputValue = "type = buttonOnclick =" sendto () ">
</form>
ปัญหาทั่วไป:
1. จะส่งอย่างไรในกล่องโต้ตอบ Modal โดยไม่ต้องเปิดหน้าต่างใหม่?
หากเบราว์เซอร์ของคุณคือ IE5.5+คุณสามารถใช้ iframe กับแอตทริบิวต์ชื่อในกล่องโต้ตอบและคุณสามารถกำหนดชื่อของเป้าหมายไปยัง iframe ในเวลาที่ส่ง สำหรับ IE4+คุณสามารถใช้ความสูง 0 ถึงเฟรม: ตัวอย่าง
test6.htm
-
<script>
window.showmodaldialog ("test7.htm")
</script>
test7.htm
-
if (window.location.search) แจ้งเตือน (window.location.search)
<framesetrows = "0,*">
<framesrc = "เกี่ยวกับ: blank">
<framesrc = "test8.htm">
</frameset>
test8.htm
-
<formTarget = "_ self" method = "get">
<inputName = txtValue = "ทดสอบ">
<inputType = ส่ง>
</form>
<script>
if (window.location.search) แจ้งเตือน (window.location.search)
</script>
2. ฉันสามารถส่งพารามิเตอร์โดยตรงไปยังกล่องโต้ตอบผ่าน http: //servername/virtualdirname/test.htm? name = mxh?
คำตอบไม่ใช่ แต่มันเป็นไปได้ในเฟรม