为什么Internet Explorer与后退按钮上的预期功能不同

TBA*_*TBA 7 javascript browser asp.net-mvc internet-explorer browser-cache

在我的ASP.NET MVC项目中,我们引入了Lucine Searching,(虽然在这种情况下这些细节不是必需的,只是给出一些背景知识,因为我相信我的问题与IE浏览器和缓存有关).

在此页面中,用户可以根据关键字过滤搜索.并且用户可以单击以转到列出的项目并使用浏览器后退按钮或具有javascript代码的手动HTML按钮返回到同一页面 onclick = "location.href = 'Javascript:history.go(-1);'".

在Chrome,Firefox甚至是Internet Explorer 9中,用户可以在没有任何问题的情况下返回他离开的页面.我的意思是它保留了用户输入的值.

但是在IE 10和IE 11中,当用户点击过滤后的列表项时,它会进入页面,当用户第一次点击浏览器后退按钮或HTML后退按钮时,我会返回正确的过滤页面.但是,当用户再次单击任何项​​目并执行相同的过程时,我将不会返回过滤后的值.取而代之的是所有结果,即使文本框也没有用户输入的关键字.

始终假设后退按钮用于帮助人们返回同一页面并说明他们离开的位置.我没有任何线索,为什么IE 10和11的行为不同.请你帮我弄清楚我在这里缺少什么.

Siv*_*mma 2

在特殊情况下(由于某些内部页内动态功能,仅页面的 url 无法确定状态),我们需要自己实现历史记录处理。

\n\n

设置历史标记\xe2\x80\x93 每当用户执行以您想要保存的方式更改 \n \xe2\x80\x9cscreen\xe2\x80\x9d 的操作时,您应该存储 \na 标记

\n\n
    \n
  • History.newItem("someLinkTarget", false);
  • \n
  • 响应历史标记
  • \n
\n\n

每当 URL 以 #someToken 结尾时,该令牌就会传递给onValueChangeHistory\xe2\x80\x99s 的方法ValueChangeHandler

\n\n
public void onValueChange (ValueChangeEvent<String> event) {\nString linkTarget = event.getValue();\nif (checkForYourSavedToken(linkTarget)) {\n... your code displays your expected results;\n} else { \xe2\x80\xa6 }\n
Run Code Online (Sandbox Code Playgroud)\n\n

这些知识来自GWT阅读,但我没有对其核心进行测试。如果这对您没有帮助,请忽略。(另请查找w3schools,它表明没有适用于历史对象的公共标准,但所有主要浏览器都支持它。

\n