以下代码在IE7以外的其他所有浏览器中都能正常运行。实际上,在页面上启用此选项后,在我将其注释掉之前,脚本才会起作用。
$(document).ready(function () {
var pathname = $(location).attr('href');
if(pathname.indexOf('sess') === -1){
var path = pathname;
}else{
var path = pathname.replace(/sess[^&]*&?/, "");
}
$.ajax({
type: "POST",
url: "ajax/save_page.php",
data: 'last_page='+path
});
});
我检查过错误的逗号但找不到任何错误。如果我通过Ajax调用传递一个文字值并注释掉函数的其余部分,一切都开始工作,但我需要整个函数才能工作。
答案 0 :(得分:0)
好的,我开始意识到它不能在IE7上工作但是我需要脚本继续工作,因为它完全没有排除IE7用户,所以我用..
if(navigator.appVersion.indexOf("MSIE 7.")!=-1)
确定浏览器是否为IE7,如果是,则排除该位脚本。希望用户能够说服他们的管理员在他们意识到它不能正常工作时将其升级到不同的浏览器。
但是,为了记录,我同意在一个理想的世界中我们不应该支持IE7等,但在现实世界中,很多人仍然使用它,很多人都无法做任何事情。 。我在医疗和牙科行业工作,许多医院等(约50%)仍在使用带有IE7的XP,虽然不知道微软不再支持XP,但没有立即进行升级计划。
修订解决方案
好的,我已经修改了我的解决方案,我现在正在使用php
个会话来传递以前在网址中的sess
变量,所以我不再需要尝试将其从url,同时保留其余的params完好无损。
所以现在我正在使用
var path = window.location.href;
$.ajax({
type: "POST",
url: "ajax/save_page.php",
data: 'last_page='+path
});
在我测试的所有浏览器中,包括IE7
都可以正常工作