Javascript 最多可在3个选项卡中打开的网页-如何打开?

Javascript 最多可在3个选项卡中打开的网页-如何打开?,javascript,browser,Javascript,Browser,有可能这样制作网页吗?怎么做? 我可以在javascript中使用onunload或onbeforeunload等事件,但不是每个浏览器都能处理它。这是不可能的。无法更改用户可以从远程服务器打开的选项卡数 这是不可能的。您无法阻止网站以这种方式打开新的选项卡页面。 或者,用户应该允许您访问他的电脑,以便对选项卡进行计数。。(但到底谁会接受呢?人们可能不喜欢这样,但一种选择是使用localStorage存储打开的窗口数量。在页面的部分: // Check localStorage item - i

有可能这样制作网页吗?怎么做?
我可以在javascript中使用onunload或onbeforeunload等事件,但不是每个浏览器都能处理它。

这是不可能的。无法更改用户可以从远程服务器打开的选项卡数

这是不可能的。您无法阻止网站以这种方式打开新的选项卡页面。
或者,用户应该允许您访问他的电脑,以便对选项卡进行计数。。(但到底谁会接受呢?

人们可能不喜欢这样,但一种选择是使用
localStorage
存储打开的窗口数量。在页面的
部分:

// Check localStorage item - if it exists, see if the count is 3 (or greater, I guess)
//   -If so, redirect this page somewhere else (attempt to use window.close(), otherwise redirect this page to some other page)
//   -If not, increment the counter
// If localStorage item doesn't exist - create it and set it to 1
// What I mean by "item" is that localStorage is basically key/value pairs, so check for your key you want to store this as    

$(window).on("unload", function () {
    // Decrement count in localStorage
});

我不确定浏览器进程以意外方式终止时“卸载”是如何工作的,但这可能是个问题。

这有点粗糙,但可能会起作用。如果你能识别一个用户(登录等),那么你可以让一个基于JS的心跳消息从浏览器发送到你的服务器,比如说每1-2秒发送一次,并为每个打开的页面提供用户名和唯一标识符。因此,通过这种方式,您可以在服务器上知道,根据一个用户有多少独特的心跳,在为一个用户打开的页面的选项卡中,如果用户尝试第四个选项卡,您可以拒绝从服务器提供该页面。一旦心跳MSG停止SAT 30秒或1分钟(超时),您可以考虑关闭一个标签。
这可以处理意外的浏览器关闭,并且不需要对客户端环境进行任何特殊访问。

真的吗?即使显示在4个选项卡中,而不是主页面?客户端javascript控制浏览器。使用javascript,您可以尝试*打开其他窗口,但不能限制用户打开的窗口/选项卡的数量*用户必须启用javascript。我可以收集数据库的IP,然后检查是否有3个连接。但并不是每个浏览器都能处理onLoad、onbeforeunload事件,所以我不能从IP连接1个。这不仅仅是javascript。正如我在上面的评论中所说的。我可以收集数据库的IP,但不知道如何从每个浏览器的数据库中删除它。你可以在一段时间后卸载,但如果同一IP的4个用户打开一个网站呢?不行!