这个是同事今天遇到的问题,有一个Form,里面有几个下拉列表Select和一个输入框Input,点击按钮进入下一个页面,在下一个页面有一个后退按钮,点击后退按钮(调用的就是history.back())返回前面的页面,页面上根据Form的内容拼接的一个字符串的内容不太对,那个Input输入框的部分的内容不正确,其它的下拉列表的内容是正确的,看了下他的代码,发现是使用document.write在页面加载过程中直接输出的,这个问题以前遇到过,但是我只是猜测浏览器的工作原理,没有找到权威的论据:
Input输入框是有一个defaultValue属性的,就是页面最开始的时候的值,如果用户修改输入框的值,那么变化的是value值,而如果进入下一个页面,然后使用浏览器的回退功能返回,那么页面加载的时候还是先加载的那个defaultValue的值,用户修改的那些值在页面完成加载后才会变化。所以同事遇到的那个问题可以通过页面的onLoad解决或者window.setTimeout解决。
明天到公司验证下,加些JavaScript应该可以确定这个过程。

(Visited 456 times, 1 visits today)