Javascript can';似乎没有更改window.location.href或window.location
我正在开发一个遗留应用程序,它将用户的大量会话数据存储在数据库中,当用户注销或离开站点时,它会被编码以清除所有会话数据。它通过使用onunload事件调用javascript函数来实现。该函数使用multilple语句,将window.location.href设置为各种aspx文件的路径,这些文件将清除特定应用程序的数据…如下所示:Javascript can';似乎没有更改window.location.href或window.location,javascript,asp.net,Javascript,Asp.net,我正在开发一个遗留应用程序,它将用户的大量会话数据存储在数据库中,当用户注销或离开站点时,它会被编码以清除所有会话数据。它通过使用onunload事件调用javascript函数来实现。该函数使用multilple语句,将window.location.href设置为各种aspx文件的路径,这些文件将清除特定应用程序的数据…如下所示: window.location.href = "/SubDir/SessionReset.aspx"; window.location.href = "/Ano
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=”语句可以运行,并将浏览器发送到下一页。这似乎不可能。我错了吗
感谢您提供的所有清晰信息。只有一个位置更改才能起作用 你可以这样做
iframe1.location.href = "/SubDir/SessionReset.aspx";
iframe2.location.href = "/AnotherSubDir/SessionReset.aspx";
window.location.href = "/ThirdSubDir/ClearData.aspx";
有两个iFrame,可能中间有一些超时,但最好的方法是调用一个服务器进程来清除所有数据页面不可能转到多个位置…我认为您需要创建一个XMLHttpRequest,并在服务器上调用一些函数来为您完成所有清理工作。这可以在window.onunload事件上完成。否则,您可以在当前窗口关闭之前打开新窗口,然后该页面可以执行清理工作并自行关闭。onunload在chrome中不起作用,opera w3schools不是可靠的参考。我已经看到了有关onunload不起作用的w3schools信息。我通过使用window.onunload=window.onbeforeunload=(function(){CallMyJavascript();});,绕过了它;。这似乎奏效了。javascript运行。真是太神奇了。我正在编写的代码已经存在多年了,据我所知,它从未起过作用。尽管如此,我还是想知道当我将window.location值设置为新URL时,它为什么没有改变。谢谢你的回答!对我认为在服务器端完成所有这些工作肯定是答案。谢谢你的建议!