Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何阻止用户在两个不同的选项卡/窗口中打开相同的信息?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何阻止用户在两个不同的选项卡/窗口中打开相同的信息?,javascript,jquery,Javascript,Jquery,从我的应用程序中,我需要阻止用户在两个不同的选项卡/窗口中打开相同的链接(链接是动态的,而不是静态的),因为链接生成的id是基于我不允许用户在不同的选项卡中打开相同的id信息 我怎样才能预防它 如果使用window.open()为窗口命名,则不会打开多个窗口/选项卡 例如: window.open("http://www.google.com", "myWindow"); 如果您有一个id来区分不同的窗口,代码可能如下所示: window.open("url_for_id", "window"

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

我怎样才能预防它

如果使用window.open()为窗口命名,则不会打开多个窗口/选项卡

例如:

window.open("http://www.google.com", "myWindow");
如果您有一个id来区分不同的窗口,代码可能如下所示:

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

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

我认为最接近您的是:

  • 仅向已登录的用户提供信息
  • 为每个页面生成随机令牌(并跟踪哪些令牌与哪些页面关联)
  • 使用Ajax每n秒ping一次服务器,在请求中传递令牌
  • 如果服务器响应“在n次3秒内从同一用户处收到同一页面的不同令牌”或未收到响应,则
    document.body.innerHTML='
当然,这对用户来说是一件可怕的事情,通过在调试工具中破解JS,或者只是复制/粘贴或截屏信息,就可以轻松地击败它


Web浏览器的设计目的不是为了限制其用户对其获取的信息所能做的事

您可以使用本地存储来标记在加载活动中打开的页面,并在加载检查中重置卸载中的标志。如果设置了标志,则限制其他允许。我可以问一下您为什么这样做吗?从技术上讲,您不能,至少不是有效的。例如,如果您通过按钮打开窗口,它不适用(请参阅)。当然,用户可以在多个选项卡/窗口中复制/粘贴URL,但是普通用户可能不需要它来创建新选项卡,而新的parant窗口不需要它来创建子窗口。你知道吗?