この方法でウェブページを作成することは可能ですか?そしてどうやって?javascriptでonunloadやonbeforeunloadなどのイベントを使用できますが、すべてのブラウザがそれを処理するわけではありません。
4 に答える
人々はおそらくこれを気に入らないでしょうが、オプションは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
});
ブラウザプロセスが予期しない方法で終了した場合に「アンロード」がどのように機能するかはわかりませんが、それが問題になる可能性があります。
これは不可能です。ユーザーがリモートサーバーから開くことができるタブの数を変更することはできません。
これは不可能です。Webサイトがその方法で新しいタブページを開くのを防ぐことはできません。または、タブの数を維持するために、ユーザーは自分のPCへのアクセスを許可する必要があります。(しかし、いったい誰がそれを受け入れるでしょうか?)
これは少し粗雑ですが、機能する可能性があります。ユーザー(ログインなど)を認識できる場合は、ブラウザからサーバーにJSベースのハートビートメッセージを送信して、開いているページごとにユーザー名と一意の識別子を使用して1〜2秒ごとに送信することができます。そのため、サーバー上で、ユーザーに送信される一意のハートビートの数に基づいて、ユーザーがページを開いているタブの数を知ることができます。ユーザーが4番目に試行すると、サーバーからのページの提供を拒否できます。ハートビートメッセージが30秒または1分(タイムアウト)停止すると、タブが閉じたと見なすことができます。
これにより、予期しないブラウザのクローズを処理でき、クライアント側の環境への特別なアクセスは必要ありません。