不用id的选项卡html代码,javascript – 如何存储每个浏览器选项卡唯一的ID?

我正在调试在多个浏览器选项卡中运行我们的Web应用程序并使用log4

javascript添加客户端日志的问题.我现在正在尝试确定哪个日志行由哪个浏览器选项卡写入,因此我想为每个日志行添加唯一的选项卡ID.

这可以归结为我需要一种方法来识别浏览器选项卡是“新的”并需要接收新的选项卡ID.已收到标签ID的标签应保留此ID.

但我还没有找到一种方法来存储这样的ID:

>幸存标签重新加载

选项卡之间总是不同的

>在嵌入在与嵌入页面不同的域中的iframe中工作

这是我尝试过的:

>如果选项卡的会话存储尚未包含此ID,则将选项卡ID存储在会话存储中并生成新ID.

这在大多数情况下都很有效.但是,在某些情况下,新选项卡会以其打开的选项卡的会话存储的完整副本开始.当通过单击引用新窗口目标的超链接打开新选项卡时,或者选项卡重复时,似乎就是这种情况.在这种情况下,我们无法区分两个选项卡,因此两个选项卡最终都使用相同的选项卡ID.

>使用jQuery.data()将选项卡ID附加到HTML元素,如果HTML元素的数据尚未包含此类ID,则生成新ID.

这是愚蠢的,因为它显然无法使标签重新加载.

>将选项卡ID存储在包含我们的应用程序的iframe的window.name中,如果window.name尚未包含此类ID,则生成新ID.

这不起作用,因为生成HTML iframe标记的嵌入应用程序(我们无法更改)会设置iframe名称,因此每次重新加载选项卡后标签ID都会丢失.

>如果window.top.name尚未包含此ID,则将选项卡ID存储在window.top.name中并生成新ID.

这不起作用,因为我们无法设置window.top.name,因为跨站点安全性约束(嵌入应用程序托管在与iframe内容不同的域中).

>在包含我们的应用程序的iframe中嵌入另一个iframe,将该标签ID存储在该iframe的window.name中,如果内部iframe的window.name尚未包含此类ID,则生成一个新ID.

这不起作用,因为即使我们在打开它时没有显式设置内部iframe的名称,iframe的名称也会在tab重新加载时重置为空字符串.这是我们打开内部iframe的方式:

< iframe id =“iframe2”src =“index.jsp”>< / iframe>

我理解为什么前四个选项不起作用.我不确定为什么第五种选择不起作用,并怀疑我可能犯了一个小错误.

如果没有,我想知道是否有任何其他方式可以让我确定标签是新的,因此需要接收新的标签ID.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值