window.location.reload();在 IE8 中丢失视图状态

发布于 2025-01-04 23:11:56 字数 571 浏览 1 评论 0原文

单击按钮时,我需要确保窗口控件更改为新的新元素(选项卡)。因此,我在 html 中使用类似的内容:

<input id="back" type="button" value="Back to Form" onclick="backTo();">

相应的 JS 代码是: -

function backTo(){
    window.location.href='#fragment-1';
    window.location.reload();
}

在 Firefox 中执行上述操作时,控制将返回到元素(fragment-1),其中字段具有先前输入的文本数据。虽然 IE8 控件中的相同操作会返回到fragment-1 元素,但之前输入的所有文本数据都会丢失。

此外,我已将缓存控制参数设置为公共,并尝试查看这是否有助于在控制返回给定 div/元素时从缓存加载视图状态。

有什么遗漏的吗?

On Click of a button, I need to make sure window control changes to new new element(tab). Therefore, I am using something like this in html:

<input id="back" type="button" value="Back to Form" onclick="backTo();">

and the corresponding JS code is:-

function backTo(){
    window.location.href='#fragment-1';
    window.location.reload();
}

On executing above in Firefox, control is going back to the element(fragment-1) with fields having text-data entered prev. While the same in IE8 control is going back to fragment-1 element but all text-data entered prev is lost.

Further, I have added Cache-control paremeter set to public and tried seeing whether this would help the viewstate to be loaded from cache whenever control goest back to given div/element.

Anything missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

z祗昰~ 2025-01-11 23:11:56

好吧..这取决于特定浏览器如何保存页面状态..
还可以尝试使用history.go()方法http://www.w3schools.com/jsref/met_his_go。 asp 看看问题是否解决。

well.. it depends upon how a particular browser saves the state of the page..
also try using history.go() method http://www.w3schools.com/jsref/met_his_go.asp and see if the problem is solved.

生生漫 2025-01-11 23:11:56

如何重新提交表单而不是重新加载:

document.forms[0].submit();//assumed there is only one form in you page

更新:这应该可以:
假设下面的 div 是您想要将控件转移到的元素,请使用scrollIntoView函数:

<div id="fragment-1" name="fragment-1">
....
</div>

document.getElementById('fragment-1').scrollIntoView();

how about resubmitting the form instead of reloading:

document.forms[0].submit();//assumed there is only one form in you page

UPDATE: This should do it:
Assuming that div below is the element you like to transfer the control to, use the scrollIntoView function:

<div id="fragment-1" name="fragment-1">
....
</div>

document.getElementById('fragment-1').scrollIntoView();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文