如何使内容可编辑保存永久和全局?

时间:2015-03-16 10:59:50

标签: javascript php html

我正在尝试创建一个与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>

2 个答案:

答案 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>