2010-02-03 12 views
9

मैं एक पॉपअप विंडो खोलने के लिए अपनी साइट पर jQuery/जावास्क्रिप्ट कोड के इस खंड का उपयोग कर रहा:जावास्क्रिप्ट "window.open" कोड Internet Explorer 7 में काम नहीं करेगा या 8

$('#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"); 
}); 

इस कोड पर काम करता है फ़ायरफ़ॉक्स और क्रोम। यह आईई 7 या आईई 8 पर काम नहीं करता है (आईई 6 का परीक्षण नहीं किया है)। आईई window.open लाइन पर एक त्रुटि पॉप अप करता है। क्यूं कर? आईई जो त्रुटि देता है वह "अवैध तर्क" है और यह सब कुछ है।

उत्तर

32

यह दूसरे पैरामीटर में यह स्थान है जो इसका कारण बन रहा है। आप के बजाय "फ़ोटो अपलोड करें" "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"); 
}); 

मैं, किसी भी सरकारी कारणों को खोजने के लिए क्यों window.open() की windowName पैरामीटर में एक अंतरिक्ष होने के रूप में एक त्रुटि का कारण बनता है नहीं कर पा रहे हैं, लेकिन यह सिर्फ एक कार्यान्वयन विस्तार की संभावना है। windowName को आंतरिक संदर्भ के रूप में उपयोग किया जाता है, और एंकर या फ़ॉर्म के लक्ष्य विशेषता के लिए मान के रूप में उपयोग किया जा सकता है, इसलिए मुझे लगता है कि आईई आंतरिक रूप से संभाल नहीं सकता है। गेको/फ़ायरफ़ॉक्स के लिए संदर्भ दस्तावेज़ कहते हैं कि यह पैरामीटर में रिक्त स्थान नहीं होना चाहिए, लेकिन स्पष्ट रूप से गीको के वर्तमान संस्करणों में इसके साथ कोई समस्या नहीं है।

+0

ज़ोंबैट: हाँ यह एक समस्या क्यों है, यह नहीं है कि खिड़की का शीर्षक ... बस यह पता लगाया गया है कि इसके कारण इसे स्ट्रिंग() होना था। – Hogan

+2

ऐसा शायद इसलिए है क्योंकि दूसरा पैरामीटर विंडो का * नाम * है, और इसे व्हाइटस्पेस –

+2

@ होगन शामिल करने की अनुमति नहीं है: यह एक आंतरिक _name_ है, _title_ नहीं। –

9

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 देखें।

संबंधित मुद्दे