如何防止动态添加的元素在页面重新加载后消失
How to prevent a dynamically added element from disappearing after page reload.
我有以下代码,当我单击提交按钮时,它会在html中生成一个div元素。div元素成功生成,但问题是当我刷新页面时,它会消失,如何使它保持在那里,即使稍后刷新页面。
我的目的是希望用户在我的页面上添加评论。所以我希望评论留在页面上。
<script type="text/javascript">
function myfunction(){
var name=document.forms["myform"]["name"].value;
var comment = document.forms["myform"]["comment"].value;
var div=document.createElement("div");
var text=document.createTextNode(name+" commented "+comment);
div.appendChild(text);
document.body.appendChild(text);
}
</script>
<body>
<form name="myform">
Name: <input type="text" name="name"/>
<br>
Comment:
<textarea rows="4" cols="50" name="comment">
</textarea>
<input type="button" value="submit" onclick="myfunction()"/>
</form>
</body>
<div id = "com"></div>
听起来你甚至可能想要这样的东西:
http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/
试试这个,我使用的是jquery:http://jsfiddle.net/sVgxa/
HTML:
<textarea id="input"></textarea>
<button id="submit">Enter</button>
<div id="newDivs"></div>
Javascript:
$('#submit').click(function() {
var text = $('#input').val();
$('#newDivs').append('<div>' + text + '</div>');
});
如果您想要在不同的用户之间显示一些内容,则需要使用Ajax来实现更复杂的内容。
您可以使用javascript cookie:
Fiddle
html:
<form name="myform">Name:
<input type="text" name="name" />
<br>Comment:
<textarea rows="4" cols="50" name="comment"></textarea>
<input type="button" value="submit" onclick="myfunction()" />
<div id="com"></div>
</form>
javascript:
document.addEventListener("DOMContentLoaded", check, false);
function check() {
if (checkCookie("name")) {
var name = document.forms["myform"]["name"].value;
var comment = document.forms["myform"]["comment"].value;
var div = document.createElement("div");
var text = document.createTextNode(getCookie("name") + " commented " + getCookie("comment"));
div.appendChild(text);
document.body.appendChild(text);
}
}
function myfunction() {
var name = document.forms["myform"]["name"].value;
var comment = document.forms["myform"]["comment"].value;
var div = document.createElement("div");
var text = document.createTextNode(name + " commented " + comment);
div.appendChild(text);
document.body.appendChild(text);
if (!checkCookie("name")) {
setCookie("name", name, 365);
setCookie("comment", comment, 365);
}
}
function getCookie(c_name) {
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) {
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
function setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
function checkCookie(cookie) {
var flag = getCookie(cookie);
if (flag != null && flag != "") {
return true;
}
return false;
}
相关文章:
- 创建新数据和加载现有数据需要单独的视图吗
- 钛 - HTTPClient:打开新的控制器加载
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- 路由到新页面时加载不起作用
- 如何在新窗口完成加载后执行某些内容
- 使用新标题重新加载 html 页面
- Primefaces在打开新页面时加载数据消息
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 用新数据重新加载renderer3d
- 文本不被渲染后,新的页面加载- JQuery移动
- 需要在新标签中加载pdf/doc文件,而不是下载,只是想在浏览器中阅读
- 用新参数重新加载页面
- Js和CSS不检测新页面何时加载
- 在新页面上加载一个flash视频,它在上一页上的位置
- 在新窗口中加载代码编写器视图
- 在控制台中使用新脚本重新加载页面
- 如何在加载新页面后加载AJAX数据
- 如何使用jQuery在新窗口中加载页面,然后关闭它们
- Jquery没有看到新的HTML加载到对话框中
- 无法用新值重新加载JGrid