سؤال

أنا أستخدم جزءًا كبيرًا من كود jQuery/JavaScript على موقعي لفتح نافذة منبثقة:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"Upload Photo",
    "menubar=no,width=430,height=100,toolbar=no");
});

يعمل هذا الرمز على Firefox و Chrome. لا يعمل على IE7 أو IE8 (لم يتم اختبار IE6). أي ينبثق خطأ على السطر window.open. لماذا ا؟ الخطأ الذي يعطيه IE هو "وسيطة غير صالحة" وهذا كل شيء.

هل كانت مفيدة؟

المحلول

إنها المساحة في المعلمة الثانية التي تسببها. إذا كنت تستخدم "UploadPhoto" بدلاً من "تحميل الصورة" ، فهو يعمل:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"UploadPhoto",
    "menubar=no,width=430,height=100,toolbar=no");
});

لا يمكنني العثور على أي أسباب رسمية حول سبب وجود مساحة في windowName معلمة window.open() يسبب خطأ ، ولكن من المحتمل أن يكون مجرد تفاصيل تنفيذ. ال windowName يستخدم كمرجع داخلي ، ويمكن استخدامه كقيمة لسمة الهدف من المرساة أو النموذج ، لذلك أعتقد أنه لا يمكن التعامل مع ذلك داخليًا. تقول المستندات المرجعية لـ Gecko/Firefox أن هذه المعلمة ينبغي لا تحتوي على مسافات ، ولكن من الواضح أن الإصدارات الحالية من Gecko لا تواجه مشكلة في ذلك إذا حدث ذلك.

نصائح أخرى

ال windowName يمكن أن تحتوي الحجة فقط على أحرف أبجدية رقمية ورسومات سوية (أي [A-Z0-9_]).

يجب أن تتغير

window.open("photo.upload.php?id=" + $id,"Upload Photo",
"menubar=no,width=430,height=100,toolbar=no");

ل

window.open("photo.upload.php?id=" + $id,"Upload_Photo",
"menubar=no,width=430,height=100,toolbar=no");

أو بعض الأسماء الأخرى التي لا تحتوي على مساحات.

يرى https://developer.mozilla.org/en/dom/window.open.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top