我在使用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元标记。
我完全失去了,迫切需要一些帮助