IE在window.location上不一致

时间:2013-02-27 00:35:33

标签: html internet-explorer caching cookies href

我在使用Internet Explorer时遇到了一个奇怪的问题。

我正在使用Angularjs,但我不认为这是问题(可能是错误的)

我的网站有“链接”,我需要用javascript触发。这是因为我必须等到$ http.post的响应才能进入下一页。

$scope.set_session_data = function(time_slot) {
    var session_data = {};
    if ($scope.suburb) {
        session_data['suburb'] = $scope.suburb;
    }
    if (time_slot) {
        session_data['details'] = {};
        //php doesn't know what moment is so translate moment into timestamp
        session_data.details['time_slot'] = $.extend(true, {}, time_slot);
        session_data.details.time_slot.time = time_slot.time.unix();
    }
    session_data['current_step'] = 2;
    $http.post('php/set_session_data.php', session_data).
        success(function(data, status) {
            console.info("Session data stored");
            //LINK IS SET HERE
            window.location = "book_now.html?p="+$scope.suburb.POSTCODE;
            return true;
        }).error(function(data, status) {
            console.error("Error setting session data");
        });
};

这在IE以外的所有浏览器中都能正常工作,并且大多数情况下它也适用于IE。直到它随机停止,链接将无法正常工作。当我处于IE的调试模式时它始终有效,并且当我清除缓存和/或cookie时它会自行修复。如果我打开一个标签而另一个打开时,我只能强制重现问题(即使有时有效,有时会杀死链接)。

我厌倦的事情:

window.location = xxx;
window.location.href = xxx;
window.location.replace(xxx);
window.location.assign(xxx);
//all of the above with both
top.window.loacation = xxx;
window.top.location = xxx;
top.location = xxx;
document.location = xxx;

return false; //instead of return true;

我尝试过一个javascript代码段来清除所有Cookie, 我已经厌倦了与清除/禁用缓存和cookie相关的所有html元标记。

我完全失去了,迫切需要一些帮助

0 个答案:

没有答案