您可以在3个标签中打开最多的网页 - 如何?

时间:2012-10-03 16:42:50

标签: javascript browser

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

人们可能不会喜欢这样,但可以选择使用localStorage来存储打开多少个窗口。在您的信息页<head>部分:

// 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
});

我不确定&#34;卸载&#34;浏览器进程以意外方式终止时有效,但这可能是个问题。

答案 2 :(得分:1)

这是不可能的。您无法阻止网站以这种方式打开新的标签页。 或者用户应该允许您访问他的电脑以便记录标签..(但是谁会接受这个?)

答案 3 :(得分:1)

这有点粗糙,但可能会奏效。如果您可以识别用户(登录等),那么您可以使用基于JS的心跳信息从浏览器到服务器,每1-2秒使用用户名和每个打开页面的唯一标识符。因此,您可以根据为用户提供的唯一心跳数量,在服务器上知道,在用户打开的页面数量为多少,如果他尝试第4,您可以拒绝从服务器提供该页面。一旦心跳信号停止持续30秒或1分钟(超时),您可以考虑关闭一个标签。

这可以处理意外的浏览器关闭,并且不需要对客户端环境进行任何特殊访问。