มาพูดคุยเกี่ยวกับการใช้งานขั้นพื้นฐานของ window.showmodaldialog
showmodaldialog () (เช่นการสนับสนุน 4+)
showmodelessDialog () (เช่น 5+ การสนับสนุน)
Window.ShowModaldialog () ใช้เพื่อสร้างกล่องโต้ตอบแบบแยกส่วนที่แสดงเนื้อหา HTML
Window.ShowModelessDialog () ใช้เพื่อสร้างกล่องโต้ตอบที่ไม่ใช่โมดูลที่แสดงเนื้อหา HTML
วิธีใช้:
VreturnValue = Window.ShowModaldialog (surl [, varguments] [, sfeatures])))
vreturnValue = window.showModelessDialog (surl [, varguments] [, sfeatures]))))))))))))))))))))))
คำอธิบายพารามิเตอร์:
พารามิเตอร์ surl-must-choose, ประเภท: สตริง URL ที่ใช้เพื่อระบุเอกสารที่จะแสดงในกล่องโต้ตอบ
Varguments-optional พารามิเตอร์ประเภท: ตัวแปร ใช้เพื่อส่งผ่านพารามิเตอร์ไปยังกล่องโต้ตอบ ประเภทพารามิเตอร์ที่ส่งผ่านไม่ จำกัด รวมถึงอาร์เรย์ ฯลฯ กล่องโต้ตอบได้รับพารามิเตอร์ที่ส่งผ่านผ่าน Window.dialogarguments
พารามิเตอร์ sfeatures-optional, ประเภท: สตริง ใช้เพื่ออธิบายลักษณะที่ปรากฏและข้อมูลอื่น ๆ ของกล่องโต้ตอบคุณสามารถใช้หนึ่งหรือมากกว่าด้านล่างและใช้เซ็กเมนต์ ";" เพื่อแยก
1. Dialogheight: ความสูงของกล่องโต้ตอบไม่น้อยกว่า 100px, Dialogheight และ Dialogwidth ใน IE4 คือ EM และ IE5 คือ PX ซึ่งสะดวกสำหรับกล่องโต้ตอบโมดอล
2. Dialogwidth: กล่องโต้ตอบความกว้าง
3.DialogLeft: ระยะทางจากด้านซ้ายของหน้าจอ
4. Dialogtop: ระยะทางจากหน้าจอ
5. Center: {ใช่ | ไม่ |
6.help: {ใช่ |
7. Resizable: {ใช่ | หมายเลขเริ่มต้น
8. Status: {ใช่ | ค่าเริ่มต้นคือใช่ [modeless] หรือไม่มี [modal]
9.Scroll: {ใช่ | ค่าเริ่มต้นคือใช่
คุณลักษณะต่อไปนี้ใช้ใน HTA และโดยทั่วไปจะไม่ใช้ในหน้าเว็บทั่วไป
10. Dialoghide: {ใช่ | ค่าเริ่มต้นคือไม่
11.Edge: {Sunken | เพิ่มขึ้น}: ระบุสไตล์ชายแดนของกล่องโต้ตอบ ค่าเริ่มต้นคือการเพิ่ม
12 .
การส่งพารามิเตอร์:
1. หากคุณต้องการผ่านพารามิเตอร์ในกล่องโต้ตอบคุณสามารถผ่าน Varguments ได้ ประเภทไม่ จำกัด นอกจากนี้คุณยังสามารถผ่านวัตถุได้เช่น:
คัดลอกรหัสรหัสดังนี้:
<script>
var obj = วัตถุใหม่ ();
obj.name = "ttop";
window.showModaldialog ("test.htm", obj, "dialogwidth = 200px; dialogheight = 100px");
</script>
test.htm
<script>
var obj = window.dialogarguments
การแจ้งเตือน ("พารามิเตอร์ที่คุณผ่านคือ:" + obj.name)
</script>
2. คุณสามารถส่งคืนข้อมูลไปยังหน้าต่างที่เปิดกล่องโต้ตอบผ่านหน้าต่างได้กลับมาแน่นอน ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังนี้:
<script>
str = window.showmodaldialog ("test.htm", "dialogwidth = 200px; dialogheight = 100px");
การแจ้งเตือน (STR);
</script>
test.htm
<script>
window.returnvalue = "/";
</script>
1. ความแตกต่างระหว่าง showmodaldialog และ showmodeelessDialog คืออะไร?
showmodaldialog: หลังจากเปิดแล้วมันจะทำให้อินพุตโฟกัสอยู่เสมอ เว้นแต่กล่องโต้ตอบจะปิดผู้ใช้จะไม่สามารถสลับไปที่หน้าต่างหลักได้ คล้ายกับผลการดำเนินการของการแจ้งเตือน
ShowModelessDialog: หลังจากเปิดตัวผู้ใช้สามารถสุ่มเปลี่ยนโฟกัสอินพุตได้ ไม่มีผลกระทบต่อหน้าต่างหลัก (ส่วนใหญ่จะถูกบล็อก: P)
ประการที่สองเราจะปล่อยให้หน้าต่างใหม่โผล่ขึ้นมาใน showmodaldialog และ showmodelessDialog ได้อย่างไร
เพิ่ม <base target = "_ seld"> ไปยังหน้าเว็บที่เปิดอยู่ โดยทั่วไปประโยคนี้จะอยู่ระหว่าง <html> และ <body>
จะรีเฟรชเนื้อหาใน showmodaldialog และ showmodelessDialog ได้อย่างไร?
ใน showmodaldialog และ showmodelessDialog, F5 ไม่สามารถรีเฟรชและเมนูไม่สามารถโผล่ขึ้นมาได้ สิ่งนี้สามารถพึ่งพา JavaScript เท่านั้น
<body onkeydown = "if (event.keycode == 116) {regoad.click ()}">>
<a id = "reload" href = "filename.htm" style = "display: none"> reload ... </a>
แทนที่ Filename.htm ด้วยชื่อของหน้าเว็บและวางไว้ในหน้าเว็บที่คุณเปิด
ประการที่สี่วิธีปิดหน้าต่างของ showmodaldialog (หรือ showmodeelessDialog) ด้วย JavaScript
<input type = "button" value = "close" onclick = "window.close ()">
นอกจากนี้ยังร่วมมือกับ <base target = "_ seld"> มิฉะนั้นจะเปิดหน้าต่าง IE ใหม่แล้วปิด
5. เทคนิคการส่งข้อมูล showmodaldialog และ showmodeelessDialog
(คำพูดของผู้แต่ง: ตอนแรกฉันต้องการเขียนมันในคำถามและคำตอบ แต่ฉันไม่สามารถคิดเรื่องนี้ได้ดังนั้นฉันต้องทำสิ่งนี้)
สิ่งนี้มีปัญหามากขึ้น
ตัวอย่าง: ตอนนี้คุณต้องอ่านหรือตั้งค่าตัวแปร var_name
วิธีการส่งทั่วไป:
window.showmodaldialog ("filename.htm", var_name)
// ถ่ายโอนตัวแปร var_name
เมื่ออ่านและตั้งค่าใน showmodaldialicalog (หรือ showmodeelessDialog) ::
การแจ้งเตือน (window.dialogarguments) // อ่านตัวแปร var_name
window.dialogarguments = "oyiboy" // ตั้งค่าตัวแปร var_name
วิธีนี้สามารถพอใจได้ แต่เมื่อใดที่คุณต้องการใช้งาน var_name จากนั้นใช้งานการเปลี่ยนแปลงครั้งที่สอง VAR_ID ในเวลาเดียวกัน? มันจะไม่สามารถทำงานได้อีกต่อไป นี่คือข้อ จำกัด ของวิธีการส่งนี้
ต่อไปนี้เป็นวิธีที่ฉันแนะนำให้ใช้:
window.showmodaldialog ("filename.htm", หน้าต่าง)
// ไม่ว่าตัวแปรใดจะทำงานเฉพาะวัตถุหน้าต่างของหน้าต่างหลักจะถูกส่งโดยตรง
เมื่ออ่านและตั้งค่าใน showmodaldialicalog (หรือ showmodeelessDialog) ::
การแจ้งเตือน (window.dialogarguments.var_name) // อ่านตัวแปร var_name
window.dialogarguments.var_name = "oyiboy" // ตั้งค่าตัวแปร var_name
ในเวลาเดียวกันฉันยังสามารถใช้งานตัวแปร var_id
การแจ้งเตือน (window.dialogarguments.var_id) // อ่านตัวแปร var_id
window.dialogarguments.var_id = "001" // ตั้งค่าตัวแปร var_id
ยังสามารถใช้งานวัตถุใด ๆ ของหน้าต่างหลักเช่นองค์ประกอบในวัตถุแบบฟอร์ม
window.dialogarguments.form1.index1.value = "นี่คือค่าขององค์ประกอบ index1"
ในหน้าหลักให้ใช้ onclight = "" "varite = window.showmodalog ('changephoto.htm', 'dialogwidth: 500px; dialogheight: 300px; help: no'); if (typ eof (reval)! = 'undefined' ) {form.textname.value = reval;} "style =" "เคอร์เซอร์: hand"> คลิกที่นี่เพื่อแก้ไขรูปภาพ
เปิดเฟรมเวิร์กที่ตั้งไว้ในหน้าต่างคำว่า 'ChangePhoto.htm'
ChangePhoto.htm: <อินพุตประเภท = ปุ่ม onclick = "onClose ();" value = "ปิด" >>
ฟังก์ชั่น onclose () {window.returnvalue = form1.save.value;
ไฟล์ ASP: parent.document.form1.save.value = "value หรือต่าง ๆ ";