在本地存储中保存 JavaScript 数据的最佳方法

2023-12-09

我希望能够创建 JavaScript 注释对象并使用导航栏窗格动态删除它们。

var sel = window.getSelection();
var range = sel.getRangeAt(0);
var editor = { "startContainer": range.startContainer, "startOffset": range.startOffset, "endContainer": range.endContainer, "endOffset": range.endOffset };

然后使用消息将位置和消息传递到函数中以添加注释:

Notes(editor, message);
function Notes(location, note) {
  this.location = location;
  this.note = note;
}

我正在尝试思考如何在本地实际保存数据。

function addNote() {
  // if(tyepof(Storage) !== "undefined"){
  //   if(localStorage.notes){
  //     localStorage.notes
  //   } else {
  //     localStorage.notes = 
  //   }

  localStorage.setItem()
}

localStorage 是正确的选择吗?我知道 sessionStorage 只存储会话。


这是从 a 生成一些元素的快速方法localStorage.getItem()致电,也许还可以帮助您以及纳尔逊的回答。单击小提琴中的按钮,您将看到代码获取 localStorage 对象并使用它们创建一些简单的<li>'s.

Fiddle: http://jsfiddle.net/kfrvdnux/

示例代码:

HTML

<button id='save'>Click the save button...</button>
<div id='content'></div>

JS

var content = document.getElementById('content'),
    save    = document.getElementById('save'),
    output  = '<ul>',
    animals = [{
      name: 'bob',
      type: 'dog'
    }, {
      name: 'fred',
      type: 'lizard'
    }];

// set on load for testing
localStorage.setItem('animals', JSON.stringify(animals));

// grab localStorage data on click and create a list
save.addEventListener('click', function() {
    var ls = JSON.parse(localStorage.getItem('animals'));  
    for (var i = 0; i < ls.length; i++) {
      output += '<li>' + ls[i].name + ', ' + ls[i].type + '</li>';
    }

  output += '</ul>';
  content.innerHTML = output;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在本地存储中保存 JavaScript 数据的最佳方法 的相关文章

  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • Django css文件缓存

    我有一个 css 文件 我想修改它以满足我的需要 问题是它似乎被缓存在某个地方 因为无论我在 css 文件中做什么 我都看不到更改 我确信我指向了正确的文件 因为现在我已经对其进行了修改 并且它有效 有什么设置可以关闭缓存吗 谢谢 正如本文
  • 使用 NodeJS 让 Discord 机器人发送带有消息的图片

    我有几张照片 全部在 imgur 上 带有直接图像链接 格式 https i imgur com XXXXXX jpg https i imgur com XXXXXX jpg 以及用 NodeJS 制作的 Discord 机器人 我发送这
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • 是否可以覆盖 javaScript 原始数据类型?

    问题是不言自明的 我知道可以扩展原始数据类型 例如string但有可能覆盖它吗 这是在采访中被问到的一个问题 不 你不能覆盖任何东西 Ecma脚本定义原始类型 http es5 github com x4 3 2 Undefined Nul
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 元素中优先考虑 ngclick 而非 nghref

    tl dr 如何强制 Angular 只执行 ngclick 指令 a 元素而不清空 删除href 我的网站在某些元素上有一些自定义行为 模式打开 位置栏更新等 但对于 SEO 索引我also需要它成为一个 a 元素与href包含有效链接的
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • Excel 类似 HTML 表格,可在 x 轴(完整表格)和 y 轴(标题固定)上滚动

    我想建立一个具有固定宽度列的表格 在大多数情况下 表数据会水平和垂直溢出 如果列的宽度大于视图宽度 则需要水平滚动条来滚动并查看所有表列 同时滚动标题和数据 如果数据的高度大于可用视图 则会出现垂直滚动框 但在滚动时保持标题固定 以便用户关
  • 使用 jQuery Tablesorter 操作后如何恢复当前页面?

    我正在使用 tablesorter 但无法找到有关插件 tablesorter 寻呼机的任何文档 问题是我有一个显示一些数据的表 并且在每一行中都有一个删除链接 该链接附加了要删除的元素的唯一标识符 显然 是否可以保存我正在删除的页面 然后
  • Dojo/on 和捕获阶段

    有没有办法用 dojo on 在捕获阶段 而不是冒泡阶段 触发事件 我最终在这里寻找有关 on 的前身 dojo connect 的信息 就其价值而言 dojo connect 似乎不支持捕获阶段的事件侦听器 它的工作原理是将事件处理程序作
  • C# 中的 mshtml.HTMLDocumentClass

    在 C 中 我设法从 InternetExplorer 对象获取整个 HTMLDocumentClass 导航到某个 URL 然而 在 Visual Studio 2008 的调试模式下 该特定 URL 的 HTMLDocumentClas
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一

随机推荐

  • JSLint:超出三元变量集的范围使用

    我有一个这样的代码块 global MYAPP true var MYAPP MYAPP JSLint 在等号后突出显示 MYAPP 并显示消息 MYAPP 使用超出范围 这有什么问题吗 如果你使用var那么你就声明了一个局部变量 如果你这
  • 我可以使用属性,以便我的工厂知道它可以/应该实例化什么,而不违反“松散耦合”规则吗?

    我在项目中实现了一个工厂 最近有人建议我在类上使用属性 以便工厂可以确定要实例化并传回哪个类 我是开发世界的新手 并试图严格遵循松散耦合的规则 我想知道依赖 钩子 作为属性 是否违背了这一点 装饰工厂的产品类可以使开发变得更加容易 这是我有
  • Firebase 云消息传递发送 click_action [重复]

    这个问题在这里已经有答案了 有人知道从 firebase 控制台发送 click action 的一种方法吗 我只想发送 click action 按钮以使用通知 即使应用程序已关闭或在后台也是如此 目前没有办法设置click action
  • 使用 AlternateView 生成 HTML 电子邮件的正确语法

    我正在尝试使用AlternateView以满足 HTML 和文本客户端的需求 我更喜欢使用 HTML 并且仅在必要时才使用文本 我开始重新编码一个旧的控制台应用程序来执行此操作 但我的代码中仍然有回车符和换行符作为 r n 我的问题是试图弄
  • Excel CustomUI 功能区布局

    我正在尝试为 Excel 创建一个自定义功能区 其中包含如下图所示的组 2 行按钮 下面有一个下拉框 我开始认为这不能完全按照我想要的方式完成 我尝试了几种不同的方法 其中之一如下 但它们都产生相同的输出 3 列 2x2 按钮 下拉框位于第
  • Screen命令禁用控制键ctrl-a以在vim中使用它?

    我有时使用 screen linux 命令打开 vim 但由于 ctrl a 被视为控制键 我无法在编辑器中使用相同的组合来增加数字 我不想完全重新映射 ctrl a 但有没有办法禁用它以便我可以在 vim 中使用它 In screen 您
  • 消耗不重叠的向量块,并组合结果

    我试图通过使用线程来加速大向量上昂贵的计算 我的函数使用一个向量 计算一个新值向量 它不会聚合 但必须保留输入顺序 然 后返回它 然而 我正在努力弄清楚如何生成线程 为每个线程分配向量切片 然后收集并组合结果 tunable const N
  • SpringBoot 2.1.0 尝试集成数据库访问时抛出 ClassNotFoundException

    我有一个简单的SpringBoot 2 1 0应用程序并尝试添加数据库连接JPA 一切都设置为 spring boot starter data jpa 依赖于pom xml 但是当我启动应用程序时 我得到了这个ClassNotFoundE
  • 如果使用 jquery 的 .each() 函数迭代每个表单元素后验证失败,则阻止表单提交

    我有以下代码 其中我尝试迭代 html 文本输入元素 进行一些验证并在验证失败时阻止表单提交 the form submit function text this each function if this val length 0 var
  • 什么是网络中的骨架?

    在 J2EE 应用程序中 客户端 应用程序 JSP servlet JavaBeans 通过以下方式访问实体bean 他们的远程接口 因此 每一个 客户端调用可能路由 通过网络存根和骨架 即使客户和企业 bean 位于相同的 JVM 操作系
  • 从 Web 作业运行 Azure PowerShell 命令

    Update 我按照下面 BenV 的建议使用了 Azure 自动化 并且成功了 更多信息可以找到here 我有一个 PowerShell 脚本 需要运行一些 Azure 命令 例如New AzureStorageContext Get A
  • 正则表达式提取子字符串,由于某种原因返回 2 个结果

    我需要在 javascript 中做很多正则表达式的事情 但我在语法上遇到了一些问题 而且我似乎无法找到关于此的明确资源 出于某种原因 当我这样做时 var tesst afskfsd33j var test tesst match a j
  • EF7 beta6:保存多个实体时出错

    我正在使用 ASP NET5 和 Entity Framework 7 0 0 beta 6 创建 API 当我尝试在多个请求中执行各种更新时 出现以下异常 无法跟踪 公司 因为已跟踪具有相同密钥的该类型的另一个实例 对于新实体 请考虑使用
  • 结构变量不变

    我觉得我错过了一些完全明显的东西 所以如果 什么时候 是这种情况 我提前道歉 我正在尝试做一些非常简单的事情 将结构中的 bool 值从 false 更改为 true 显然我无法直接更改它 因此我在结构中创建了一个可以调用的方法 该方法应该
  • Gradle:无法生成 QueryDSL 类

    摇篮版本 5 1 Java版本 11 我在中定义了以下任务gradle要生成的文件QueryDSL课程 task generateQClasses type JavaCompile source sourceSets main java s
  • Youtube API v3 每个请求都算作 300 个请求 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我的应用程序突然开始出现错误 超出每日限制 然后我查看了请求数 发现每1个请求算作300个请求 怎么了 此问题在过去 24 小时左右存在 Look at the Pictur
  • Elixir Hound 等待页面加载

    我正在提交一个登录表单 然后尝试使用 Elixir hound 捕获 HTML 提交后我运行page source却一无所获 如果我等待一秒钟 页面完成加载 我就会返回 html 有没有办法让猎犬等待页面加载完成 我目前正在做 timer
  • 识别 JSON 属性的唯一性[重复]

    这个问题在这里已经有答案了 运行查询我得到如下响应 results data row Name name1 row
  • 链接在浏览器中消失

    您能帮忙解决一下这个问题吗 a target self href http reversevincheck com hop asdas price type tid asda img src http reversevincheck com
  • 在本地存储中保存 JavaScript 数据的最佳方法

    我希望能够创建 JavaScript 注释对象并使用导航栏窗格动态删除它们 var sel window getSelection var range sel getRangeAt 0 var editor startContainer r