Javascript “window.open” code won't work in Internet Explorer 7 or 8

前端 未结 2 1260
南旧
南旧 2020-12-03 12:17

I am using this chunk of jQuery/Javascript code on my site to open a popup window:

$(\'#change_photo_link\').click(function(){
    $id = $(\'#id\').attr(\'va         


        
相关标签:
2条回答
  • 2020-12-03 12:34

    It's the space in the second parameter that's causing it. If you use "UploadPhoto" instead of "Upload Photo", it works:

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

    I can't seem to find any official reasons as to why having a space in the windowName parameter of window.open() causes an error, but it's likely just an implementation detail. The windowName is used as an internal reference, and can be used as a value for a target attribute of an anchor or form, so I guess IE can't handle that internally. The reference docs for Gecko/Firefox says that this parameter should not contain spaces, but clearly current versions of Gecko don't have a problem with it if it does.

    0 讨论(0)
  • 2020-12-03 12:55

    The windowName argument can only contain alphanumeric characters and underscores (i.e. [A-Z0-9_]).

    You must change

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

    to

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

    or some other name that doesn't have spaces.

    See https://developer.mozilla.org/En/DOM/Window.open.

    0 讨论(0)
提交回复
热议问题