如何实现同一浏览器多个标签页之间的通信(一)——localStorage

news/2024/7/19 14:33:26 标签: js, 客户端存储, localStorage

一、localStorage
(1)localStorage是什么?
localStorage对象在修订过的HTML5规范中作为持久保存在客户端数据的方案取代了globalStorage,是Storage的实例。
注意要访问一个localStorage对象,页面必须来自同一个域名(子域名无效),使用同一种协议,在同一个端口上。相当于globalStorage[localhost.host]。

(2)localStorage怎么用?
localStorage作为Storage的实例,可以使用Storage实例的方法。
常见操作:

js rsl">        localStorage.setItem(js-string">'name',js-string">'lwf');
        localStorage.age=js-number">21;js-comment">//注意后填加的放在localStorage的前面

        console.js-built_in">log(localStorage.getItem(js-string">'name'));js-comment">//lwf
        console.js-built_in">log(localStorage.age);js-comment">//21
        console.js-built_in">log(localStorage);js-comment">//Storage {age: "21", name: "lwf", length: 2}
        console.js-built_in">log(localStorage.key(js-number">0));js-comment">//age,注意index从0开始


        console.js-built_in">log(localStorage.js-built_in">length);js-comment">//2

        localStorage.removeItem(js-string">'name');
        console.js-built_in">log(localStorage.getItem(js-string">'name'));js-comment">//null

        localStorage.clear();
        console.js-built_in">log(localStorage);js-comment">//Storage {length: 0}

(3)怎么使用localStorage实现多标签之间的通信?
index.html:

js xml"> js-tag"><js-title">input js-attribute">type=js-value">"text">
    js-tag"><js-title">button js-attribute">id=js-value">"btn">Clickjs-tag"></js-title">button>
    js-tag"><js-title">script>
        window.onload=js-function">js-keyword">functionjs-params">(){
            js-keyword">var oBtn=document.getElementById(js-string">"btn");
            js-keyword">var oInput=document.getElementsByTagName(js-string">"input")[js-number">0];
            oBtn.onclick=js-function">js-keyword">functionjs-params">(){
                js-keyword">var val=oInput.value;
                localStorage.setItem(js-string">"value",val);
            }
        }
    js-tag"></js-title">script>

test.html:

js xml">js-tag"><js-title">script>
        window.addEventListener(js-string">"storage",js-function">js-keyword">functionjs-params">(event){
            console.log(js-string">"value is"+localStorage.getItem(js-string">"value"));
            console.log(js-string">"key is"+event.newValue);
        },js-literal">false);    
    js-tag"></js-title">script>

注意:只能实现同一浏览器相同域名、相同协议、相同端口下的多个标签页之间的通信。不同浏览器没有该效果。
效果:
这里写图片描述
(4)localStorage可以实现同一浏览器多个标签页之间通信的原理
localStorage是Storage对象的实例。对Storage对象进行任何修改,都会在文档上触发storage事件。当通过属性或者setItem()方法保存数据,使用delete操作符或removeItem()删除数据,或者调用clear()方法时,都会发生该事件。这个事件的event对象有以下属性:

  • domin:发生变化的存储空间的域名;
  • key:设置或者删除的键名;
  • newValue如果是设置值,则为新值;如果是删除值,则是null;
  • oldValue:键被更改之前的值;

注意:IE8和Firefox只实现了domin属性。
其他解决方案:
如何实现同一浏览器多个标签页之间的通信(二)——cookie+setInterval


http://www.niftyadmin.cn/n/764377.html

相关文章

如何实现同一浏览器多个标签页之间的通信(二)——cookie+setInterval

二、cookie &#xff08;1&#xff09;cookie是什么&#xff1f; HTTP Cookie&#xff0c;通常直接叫做cookie&#xff0c;最初是在客户端用于存储回话信息的。该标准要求服务器对任意HTTP请求发送Set-Cookie HTTP头作为响应的一部分&#xff0c;其中包含回话信息。浏览器会存…

Cdn英文的读音音标_THE的两种读音

THE的两种读音微信订阅号又㕛叒叕改版啦&#xff0c; 若想迅速发现并阅读小白的推送内容&#xff0c;请动手设置“星标”吧。① 点击上方 “英文小白”② 点击右上角“...” ③ 点选“设为星标 ★ ”在英文中&#xff0c;冠词有3个&#xff1a;a、an与the。a、an为不定冠词&…

图片数据提取_技能篇学习笔记之自制矢量数据

又过了好久没来更了。恰好前几天同学提到了如何用三调中的道路面要素提取中心线的问题(之前这部分我是在GIS中利用ArcScan直接提取道路中心线&#xff0c;效果还可以)。很尬的是&#xff0c;当时没想起操作&#xff0c;后来百度了一番&#xff1a;其原理就是将二值化的栅格图作…

webpack,extract-text-webpack-plugin报错:Use Chunks.groupsIterable and filter by instanceof EntryPoint

一、extrack-tex-webpack-plugin作用&#xff1a; 为了抽离css样式,防止将样式打包在js中引起页面样式加载错乱的现象 二、使用 1、 npm install --save-dev extract-webpack-plugin 2、webpack.production.config.js中 const webpackrequire("webpack"); //..…

网络新闻写作_网文写作:如何处理小说素材「盘点」

同志们小可爱们&#xff0c;瓜瓜小课堂来啦~今日话题&#xff1a;如何处理素材我们都知道&#xff0c;光凭想象以及个人经验来写小说&#xff0c;写着写着就常有不知该写什么的卡文情况。解决这种情况的一个有效方法就是&#xff0c;平时积累素材。今天&#xff0c;瓜瓜就以下三…

React调试工具:react-devtools

<!DOCTYPE html> <html><head<script src"../build/react.js"></script><!--react核心库--><script src"../build/react-dom.js"></script><!--提供与DOM相关的功能--><script src"../build/b…

可以嵌入ppt的课堂点名器_一张图片可以怎么玩出精彩

上一期我们给大家介绍了如何将枯燥的文字和版面进行转换&#xff0c;这一节再给大家分享一下如何将一张孤独的图片在PPT中进行高大上的设置。具体操作步骤首先&#xff0c;找来系统自带的一张图片&#xff0c;直接插入到PPT之中&#xff0c;这个貌似是朵菊花.....然后利用插入菜…

react+webpack项目基本配置

1、npm-init 生成package.json文件 2、安装项目依赖 npm intsall --save-dev react react-dom webpack webpack-clinpm install --save-dev webpack-dev-servernpm install --save-dev babel-core babel-loader babel-preset-env babel-preset-reactnpm install --save-dev c…