0

ユーザーが[ログイン]ボタンをクリックするとページに追加されるフォーム(登録とログイン)とモーダルバックグラウンドがあります。jqueryを使用してajax経由でフォームを送信しています。

$.post("/login",{
    "ajax":true,
    "email":$("#popup-window #login-form-email").val(),
    "password":$("#popup-window #login-form-password").val()
    },function(response){
        console.log(response);

        if(response.message=="success"){
            if(response.user.type==1){
                        console.log(window);

                        // window.location = "http://www.whatever.com/admin";
                        window[0].ownerDocument.location.href="http://www.whatever.com/admin";
                    } 
            if(response.user.type==2) window[0].ownerDocument.location.href = "http://www.whatever.com/trades";
        }else{
                $("#popup-window #login-form").append("<div id='invalid-login'>Invalid Login</div>");
            }

    },"json");

を除いてすべてが機能します

window.location = "http://www.whatever.com/admin";

そして、ウィンドウオブジェクトは私が期待するものではありません。それを調べてみると、次のことが機能することがわかりました

window[0].ownerDocument.location.href="http://www.whatever.com/admin";

私がテストしたすべてのもの(IE7、IE8、IE9、chrome、firefox)で。それがなぜなのか、これが正しい方法であるかどうかはわかりません。

私はjavascriptとDOMに比較的慣れていないので、ここで何が起こっているのかを本当に理解したいと思います。

4

1 に答える 1

1

使用するwindow.location.href = "http://www.whatever.com/admin";

于 2012-11-16T16:40:54.060 に答える