浏览 3008 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-17
但是JavaEye的编辑器不知道什么原因导致这个功能失效,经过调试代码发现了能够重现这个问题的一个简单例子: <html> <body> <div id="d"></div> <textarea style="width: 300px; height: 300px;"></textarea> <script> var new_div = document.createElement('div'); document.getElementById('d').appendChild(new_div); new_div.innerHTML = "<input type='button' value='a'/>"; </script> </body> </html> 用Firefox打开这个html,在textarea里面随便填写一些内容,然后刷新,这些内容就丢失了。 但是令人费解的时候,如果innerHTML里面写的不是input,而且其他html,比如: new_div.innerHTML = "<a href='#'>test</a>"; 这样刷新页面,textarea里面的内容就能够正常保持。 更令人费解的是,只要调整一下第3行和第4行代码的顺序,这个问题也不会出现。 以上情况在Firefox2 @ Ubuntu 7.10或者Windows上都可以重现, 初步怀疑是Firefox的Session Restore bug, 不过在它的bug list上也没有找到,不知道大家有没有遇到过类似问题? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-17
很有趣的发现。估计ff是按照控件顺序进行状态恢复的(否则它要怎么恢复呢?),因此动态插入一个控件会影响状态的恢复。
|
|
返回顶楼 | |
发表时间:2008-03-18
嗯,估计是动态加入的输入控件导致的,只能调整一下原先的页面,让textarea先出现了
|
|
返回顶楼 | |