我正在尝试创建一个与Goodle-Docs非常相似的页面,每个访问该页面的人都可以编辑文本。但是我的问题是我只能在本地保存这些更改,如何让用户编辑内容可编辑的文本,以便在所有设备上都可以看到更改?
我正在使用本教程http://www.developerdrive.com/2012/06/allowing-users-to-edit-text-content-with-html5/,但页面的更改仅保存在本地。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveEdits() {
//get the editable element
var editElem = document.getElementById("edit");
//get the edited element content
var userVersion = editElem.innerHTML;
//save the content to local storage
localStorage.userEdits = userVersion;
//write a confirmation to the user
document.getElementById("update").innerHTML="Edits saved!";
}
function checkEdits() {
//find out if the user has previously saved edits
if(localStorage.userEdits!=null)
document.getElementById("edit").innerHTML = localStorage.userEdits;
}
</script>
</head>
<body onload="checkEdits()">
<div id="edit" contenteditable="true">
Here is the element
</div>
<input type="button" value="save my edits" onclick="saveEdits()"/>
<div id="update"> - Edit the text and click to save for next time</div>
</body>
</html>
答案 0 :(得分:0)
您将需要一个后端来同步用户之间的内容,然后使用AJAX轮询每个用户的更改。
我个人建议您查看这些javascript库和框架,因为它们包含的功能与您尝试实现的功能非常接近:ShareJS,{{3 }和Derby。
答案 1 :(得分:0)
就像怀斯基所说的...
这已经很老了,但我想指出一下...
您可以通过localStorage.setItem(// itemname,// contents)完成此操作, 然后要获取它,localStorage.getItem(// itemname)。有关更多信息,请查看Mozilla localStorage...。您可以暂时这样做,但不建议这样做。
美好的一天!
p.s。由于可能由于SecurityError不允许您在stackoverflow下设置setItem,因此在这里可能无法正常工作,但请自行检查!
<!DOCTYPE html>
<html>
<head>
<script>
var version = 0;
function saveEdits() {
var editElem = document.getElementById("edit");
version = localStorage.getItem("v");
var versionTxt = document.createTextNode("Version " + localStorage.getItem("v"))
document.body.appendChild(versionTxt);
version++
localStorage.setItem("v", version);
localStorage.setItem("Elm", editElem.innerHTML);
document.getElementById("update").innerHTML="Edits saved!";
}
var editedElem = document.getElementById("edit");
var edits = localStorage.getItem("Elm");
editedElem.innerHTML = edits;
</script>
</head>
<body>
<div id="edit" contenteditable="true">
Edit me
</div>
<button onclick="saveEdits()">save edits</button>
<div id="update"> - Edit the text and click to save for next time</div>
</body>
</html>