0

重複の可能性:
MSIE と addEventListener Javascript の問題?

親ページによって呼び出される子ポップアップ ウィンドウでクローズ イベントをリッスンしようとしています。アイデアは、ユーザーがフォームに記入し、ポップアップ ウィンドウを使用して許可を受け入れ、YouTube に動画をアップロードできるようにすることです。

現在持っている機能は Chrome で動作しますが、IE 8 では動作しないようです。

function ShowUploadVideoPopUp(URL){
    //get the top and left position that the popup should be placed in
    //half the screen width and height to center the popup
    var top = Math.max(0, (($(window).height()) / 2) + $(window).scrollTop()) - 210;
    var left = Math.max(0, (($(window).width()) / 2) + $(window).scrollLeft()) - 300;
    //generate an id for this popup
    day = new Date();
    id = day.getTime();
    //open the window
    var win = window.open(URL, id, 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=420,left = ' + left + ',top = ' + top);
    //we need to set a timeout otherwise the unload event is called before the window is opened
    //dont ask me why!?!
    setTimeout(function(){
        //add an event listener to listen for closure of the popup window
        //call the video uploaded function when the window is closed
        win.addEventListener("unload", VideoUploaded, false);
    }, 500);
    return false;
}

アイデアは、ポップアップが閉じたら、親ページでフォームを送信できるということです。

私が得るエラーは次のとおりです。

「オブジェクトはこのプロパティまたはメソッドをサポートしていません」

これは、作成されたウィンドウを割り当てても、addEventListener メソッドの呼び出しがサポートされていないことを意味します。

これについてあなたの助けをいただければ幸いです。

4

2 に答える 2

1

IE は、addEvent の代わりに attachEvent を使用します。

たとえば、これらのスレッド MSIE と addEventListener Javascript での問題を参照してください。Internet Explorerで addEventListener

于 2012-07-16T09:12:13.810 に答える
1

addEventListenerIE < 9 は代わりの使用をサポートしていませんattachEvent

setTimeout(function(){
    if(win.addEventListener) // w3c standard
        win.addEventListener("unload", VideoUploaded, false);
    else if win.attachEvent('onunload', VideoUploaded, false); // IE
    else win.onunload=VideoUploaded;
}, 500);

SOに関する回答は次のとおりです。

于 2012-07-16T09:32:44.880 に答える