`window.location.reload`不会在Chrome中重新加载页面

时间:2016-05-03 10:00:06

标签: ajax google-chrome magento

我正在使用以下代码让用户使用AJAX登录Magneto。如果输入了正确的用户名和密码,页面将刷新并在标题中显示用户导航栏。该字段适用于Firefox,Safari和IE,但不适用于Chrome。我必须刷新导航栏的页面才能显示。

为什么会出现此问题?

代码:

AjaxLoginForm.submit = function(button){
    if (this.validator.validate()) {
        // show ajax image
        // button.insert({"after":osc_ajax_loading_small});
        AjaxLoginForm.hideLoader();
        AjaxLoginForm.insertLoader(button);

        $("ajaxlogin_form").request({
                onSuccess: function(transport) {
                    var json = transport.responseText.evalJSON();

                    if(json.is_forgot_pwd){
                        if(json.success){
                            $("ajaxlogin_form_message").update("<div>"+json.success_message+"</div>");
                            $("ajaxlogin_form_message").show();
                        }
                        if(json.error){
                            $("ajaxlogin_form_message").update("<div>"+json.error_message+"</div>");
                            $("ajaxlogin_form_message").show();
                        }
                    }else{                          
                        if(json.success){
                            // If the correct username and password is entered
                            // the page will refresh and display user navbar
                            // in the header
                            window.location.reload();
                        }
                        if(json.error){
                            $("ajaxlogin_form_message").update("<div>"+json.error_message+"</div>");
                            $("ajaxlogin_form_message").show();
                        }
                    }
                    AjaxLoginForm.hideLoader();
                    //setTimeout("AjaxLoginForm.hideResponseMessage()", 5000);
                }
        });

    }
}.bind(AjaxLoginForm);

3 个答案:

答案 0 :(得分:1)

您可以使用select进行尝试。此外,您可以简化代码,目前您正在多次写setTimeoutjson.success,这应该写一次。

json.error

答案 1 :(得分:0)

试试这个,我确定Chrome window.location = self.location;应该可以正常工作,或者尝试location.reload( true );,否则回调一些其他功能来重新加载你的页面。
否则你应该得到一些阻止重载的错误,你可以成功获得一个控制台。

答案 2 :(得分:0)

因为脚本位于iframe中,top.location.reload()对我有用。