似乎无法更改window.location.href或window.location

时间:2014-03-13 15:40:29

标签: javascript asp.net

我正在开发一个遗留应用程序,它将大量用户会话数据存储在数据库中,当用户注销或离开站点时,它会被编码以清除所有会话数据。它通过使用onunload事件来调用javascript函数来实现。该函数使用multilple语句将window.location.href设置为各种aspx文件的路径,这些文件将清除该特定应用程序的数据......如下所示:

window.location.href = "/SubDir/SessionReset.aspx"; 
window.location.href = "/AnotherSubDir/SessionReset.aspx"; 
window.location.href = "/ThirdSubDir/ClearData.aspx";

我有一个问题,还有一个问题。 问题:声明似乎无法更改window.location.href中的值。如果我这样做:

console.log("First: " + window.location.href);
window.location.href = "/Subdir/SessionReset.aspx";
console.log("Second: " + window.location.href);

href的值在第一个控制台日志和第二个控制台日志之间不会改变。该页面未被重定向"到SessionReset.aspx页面,以便代码永远不会运行。

问题:多个语句是否会将window.location.href连续设置为不同的值,甚至可以工作?看来,如果第一个" window.location.href ="声明工作,浏览器将转到该页面,那就是它。它怎么会返回所以下一个" window.location.href ="语句可以运行,并将浏览器发送到下一页。这似乎不可能。我错了吗?

感谢您提供的任何清晰度。

1 个答案:

答案 0 :(得分:1)

不可能有多个位置更改有效。

您可以执行类似

的操作
iframe1.location.href = "/SubDir/SessionReset.aspx"; 
iframe2.location.href = "/AnotherSubDir/SessionReset.aspx"; 
window.location.href = "/ThirdSubDir/ClearData.aspx";

并且有两个iframe,可能中间有一些超时但是最好的方法是调用一个清除所有数据的服务器进程