如何阻止用户在两个不同的选项卡/窗口中打开相同的信息?

时间:2012-05-10 08:44:18

标签: javascript jquery

从我的应用程序中我需要阻止用户在两个不同的选项卡/窗口中打开相同的链接(链接是动态的一个不是静态的),因为链接生成的id基础我不会允许用户打开相同的id信息不同的标签。

我该如何预防呢?

4 个答案:

答案 0 :(得分:0)

如果使用window.open()给窗口命名,它将不会打开多个窗口/标签。

示例:

window.open("http://www.google.com", "myWindow");

如果你有一个id来区分windows,代码可能是这样的:

window.open("url_for_id", "window" + id);

答案 1 :(得分:0)

我认为你不能这样做。 但你可以这样做 每次用户查看页面并将其存储到会话以及页面时生成令牌 您可以阻止用户从两个选项卡提交数据

答案 2 :(得分:0)

我认为你最接近的可能是:

  • 仅向登录用户提供信息
  • 为每个页面生成随机令牌(并跟踪哪些令牌与哪些页面相关联)
  • 使用Ajax每隔 n 秒对服务器执行ping操作,并在请求中传递令牌
  • 如果服务器响应“在 n次3 秒内收到来自同一用户的同一页面的不同令牌”或未收到任何回复,则document.body.innerHTML = ''

这当然对用户来说是一件可怕的事情,可以通过在调试工具中破解JS或者只是复制/粘贴或截取信息的屏幕截图来轻易击败。

网页浏览器并非旨在通过提取的信息来限制用户的权限

答案 3 :(得分:0)

您可以使用本地存储来标记在加载活动中打开的页面,并在加载时重置标记,如果设置了标志,则设置为另外允许。