ฉันมีไซต์ที่มีปัญหาเฉพาะ IE8:
รหัสคือ:
var w = window.open(urlstring, wname, wfeatures, 'false');
ข้อผิดพลาดคือ:
ข้อความ: อาร์กิวเมนต์ไม่ถูกต้อง
บรรทัด: 419 Char: 5
รหัส: 0
URI: http: //HOSTNAME/js_context.js
ฉันได้ยืนยันหมายเลขบรรทัดของรหัสแล้ว ("Line" และ "URI" ถูกต้อง) และฉันเข้าใจใน IE8 รุ่นที่ใหม่กว่าซึ่งถือว่าถูกต้อง
ฉันได้ตรวจสอบพารามิเตอร์ขาเข้าทั้งหมดในการโทรโดยการทิ้งการแจ้งเตือนและทั้งหมดดูถูกต้อง
ปัญหานี้ไม่เกิดขึ้นกับ FF (อาจเป็น 3)
UPDATE:
ปัญหาดูเหมือนจะอยู่ในการใช้การกำหนดผลลัพธ์ของ window.open () เมื่อทำ "var w" เมื่อฉันแบ่งบรรทัดออกเป็นสองคำสั่งมันทำงานใน IE8
UPDATE2:
ขึ้นอยู่กับ:
http://javascript.crockford.com/code.html
เมื่อต้องการเรียกใช้ฟังก์ชันทันทีนิพจน์การเรียกใช้ทั้งหมดควรถูกรวมไว้ใน parens เพื่อให้ชัดเจนว่าค่าที่สร้างขึ้นนั้นเป็นผลมาจากฟังก์ชันไม่ใช่ฟังก์ชันเอง
นี่ไม่ใช่สิ่งที่เกิดขึ้นที่นี่ แต่ฉันพบว่าการใช้หลักการนี้ช่วยแก้ปัญหาได้ในโหมดความเข้ากันได้ของ IE8
var w = (window.open(urlstring, wname, wfeatures, false));