Javascript 带有文本区域的HTML5本地存储

Javascript 带有文本区域的HTML5本地存储,javascript,html,textarea,local-storage,Javascript,Html,Textarea,Local Storage,我一直在尝试在我的网页中使用localStorage和textarea(没有用) 我的保存脚本如下所示: $(function() { var editor = document.querySelector("#editor"); editor.addEventListener("keyup", function() { window.localStorage["TextEditorData"] = editor.value; }); }); $window.load(functio

我一直在尝试在我的网页中使用localStorage和textarea(没有用)

我的保存脚本如下所示:

$(function() {
 var editor = document.querySelector("#editor");
 editor.addEventListener("keyup", function() {
  window.localStorage["TextEditorData"] = editor.value;
 });
});
$window.load(function () {
 var editor = document.querySelector("#editor");
 if (window.localStorage["TextEditorData"]) {
  editor.value = window.localStorage["TextEditorData"];
 }
});
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/data-load.js"></script>
<script type="text/javascript" src="js/data-save.js"></script>
</head>
<body onLoad="editor.focus()">
<textarea id="editor"></textarea>
</body>
</html>
我的加载脚本如下所示:

$(function() {
 var editor = document.querySelector("#editor");
 editor.addEventListener("keyup", function() {
  window.localStorage["TextEditorData"] = editor.value;
 });
});
$window.load(function () {
 var editor = document.querySelector("#editor");
 if (window.localStorage["TextEditorData"]) {
  editor.value = window.localStorage["TextEditorData"];
 }
});
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/data-load.js"></script>
<script type="text/javascript" src="js/data-save.js"></script>
</head>
<body onLoad="editor.focus()">
<textarea id="editor"></textarea>
</body>
</html>
我的HTML5代码如下:

$(function() {
 var editor = document.querySelector("#editor");
 editor.addEventListener("keyup", function() {
  window.localStorage["TextEditorData"] = editor.value;
 });
});
$window.load(function () {
 var editor = document.querySelector("#editor");
 if (window.localStorage["TextEditorData"]) {
  editor.value = window.localStorage["TextEditorData"];
 }
});
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/data-load.js"></script>
<script type="text/javascript" src="js/data-save.js"></script>
</head>
<body onLoad="editor.focus()">
<textarea id="editor"></textarea>
</body>
</html>


但它似乎不起作用。我是不是漏掉了什么明显的东西?当我使用contenteditable div而不是textarea,并使用editor.innerHTML而不是editor.value时,我确实成功地让它工作了,但我需要为这个特定的网页使用textarea。有什么建议吗?

您的
if()
中缺少一些括号,这是:

 if window.localStorage["TextEditorData"] {
应该是:

 if (window.localStorage["TextEditorData"]) {

当前它抛出了一个语法错误,工作:)

我已经修复了Nick Craver指出的语法错误,它在JSFIDLE中也能工作。由于某种原因,它在我的网页中仍然不起作用。好了,我现在开始使用它了。但我并不完全清楚为什么,我所做的只是将JavaScript变量“editor”更改为“ta”,而将textarea id保留为“editor”。哦,好吧,它很管用。你为什么把
jquey ui.css
附加到你的小提琴上?有没有具体的原因?