有一个页面,用户可以在任何所需的帖子上发表评论。每个帖子都有一个只有一个texsrea字段的表单,这个字段是从js动态创建的,我想知道是否有人知道如何保存和恢复用户输入的注释(即保存用户在ajax刷新之前输入的内容) div持有所有帖子和评论,然后在div刷新后恢复)
试图在此周围创造一些东西,但却没有让它发挥作用:
<textarea id="comment_field" onKeyUp="return saveAndRestoreTypedStrings(this)"></textarea>
or
<textarea id="comment_field" onchange="saveAndRestoreTypedStrings(' + id + ');"></textarea>
功能:
function saveAndRestoreTypedStrings(id){
document.getElementById("post_comment").onchange = function() {
localStorage['post_comment'] = document.getElementById(id).value;
}
window.onload= function(){
if(localStorage['post_comment'])
document.getElementById(id).value = localStorage['post_comment'];
}
}
要识别用户所在的表单,必须将该表单的唯一ID传递给saveAndRestoreTypedStrings(id)函数。
为清楚起见,ajax只刷新包含每个帖子上所有帖子和评论的div。因此,div会刷新最新帖子并每3秒发表一次评论,如果用户正在键入以对帖子发表评论并且ajax重新加载div内容,则用户会丢失正在键入的内容。
很高兴能够了解这个想法....
答案 0 :(得分:0)
window.onload会激活,所以我不认为这适用于你的情况。
为什么在AJAX完成后你不尝试使用回调函数,这样你就可以通过调用localStorage来“恢复”信息?
注意:对不起,我还没有发表评论。