Ray*_*fin 8 html javascript browser storage
是否有一个浏览器存储只能由创建它的页面使用?
我正在制作一个TamperMonkey脚本来自动化我的工作.它是在打开特定域的页面时触发的.然后,它将在所述页面中找到特定链接(相同域)并在同一选项卡中打开它.如果新打开的页面与条件匹配,则它将返回上一页(手动检查).如果没有,那么它将自行关闭.
我使用localStorage标记页面是否已尝试执行此检查.否则,脚本将在加载原始页面并在循环中捕获时重新打开链接.
只运行一个选项卡时,脚本运行顺畅.但是当我运行多个选项卡(全部在同一个域中)时,它经常会失败.我猜每个选项卡都可以访问相同的localStorage,从而搞乱循环检查.我还没有找到通过相同的脚本为每个选项卡的localStorage提供一个唯一的名称.
因此,我需要一个浏览器存储,即使它在同一个域中打开了一个新的URL,但是在具有相同域的另一个选项卡中无法使用,也可以由选项卡使用.
Moh*_*bas 10
您可以使用Window.sessionStorage来实现此目的.
例
// Store in `name` in the current tab
sessionStorage.setItem('name', 'Some Name');
// Get `name` from sessionStorage
var name = sessionStorage.getItem('name');
alert(name); // Some NameRun Code Online (Sandbox Code Playgroud)
据MDN称:
sessionStorage属性允许您访问当前源的会话存储对象.sessionStorage类似于Window.localStorage,唯一的区别是当localStorage中存储的数据没有到期设置时,存储在sessionStorage中的数据在页面会话结束时被清除.只要浏览器处于打开状态,页面会话就会持续,并且会在页面重新加载和恢复后继续存在.在新选项卡或窗口中打开页面将导致启动新会话,这与会话cookie的工作方式不同.
| 归档时间: |
|
| 查看次数: |
2526 次 |
| 最近记录: |