[ブラウザ]タブを閉じることと、JavaScriptを使用してブラウザ全體を閉じることを區(qū)別する方法は?
Apr 04, 2025 pm 10:21 PMJavaScriptはブラウザタブの閉鎖とブラウザの完全閉鎖を區(qū)別します
マルチタブブラウジングの毎日の使用では、ユーザーは単一のタブまたはブラウザ全體を閉じる必要がある場合があります。たとえば、いくつかのアプリケーションシナリオでは、ブラウザが完全に閉じている場合(ログイン情報のクリアなど)、単一のタブを閉じるときはそうではありません。この記事では、JavaScriptを使用してこれら2つの狀況を區(qū)別し、対応するソリューションを提供する方法について説明します。
問題の説明
開発したWebアプリケーションが、WindowsシステムのChromeブラウザで実行されるとします。要件は、ユーザーがブラウザ全體を閉じるときにログイン情報をクリアし、単一のタブを閉じるときにログイン情報を変更しないようにすることです。この関數(shù)を実裝する方法は?
解決
HTML5のsessionStorage
オブジェクトを使用して、この問題を解決できます。 sessionStorage
使用すると、キー価値ペアデータを同じセッションに保存できます。ブラウザを閉じると、 sessionStorage
のデータがクリアされ、単一のタブを閉じると他のタブのsessionStorage
データには影響しません。
特定の実裝手順は次のとおりです。
-
ブラウザクローズイベントをリッスンします:
beforeunload
イベントを使用して、ブラウザのクローズまたはタブのクローズ操作をリッスンします。window.addeventlistener( 'beforeunload'、function(e){ //ここでログイン情報をクリアするためにコードを追加しますが、ここで直接実行することは、タブを閉じるときにクリアすることにもつながる可能性があることに注意する必要があります。 });
-
sessionstorageを使用して閉じる動作を區(qū)別します。各タブがロードされたら、
sessionStorage
アイテムを設定し、閉じたときにアイテムが存在するかどうかを確認します。存在する場合、タブページが閉じられていることを意味します。存在しない場合、ブラウザ全體が閉じられていることを意味します。//ページが読み込まれたときにsessionStorageを設定します window.addeventlistener( 'load'、function(){ sessionStorage.setItem( 'tabopen'、 'true'); }); //閉じたときにSESSIONSTORAGEを確認してください window.addeventlistener( 'beforeunload'、function(e){ if(!sessionStorage.getItem( 'tabopen')){ //ログイン情報ClearLoginInfo(); } それ以外 { // sessionStorageアイテムsessionStorage.RemoveItem( 'tabopen'); } }); 関數(shù)ClearLoginInfo(){ //ここでログイン情報をクリアするためにコードをConsole.log( 'ログイン情報のクリア...'); }
上記の方法を使用して、タブページを閉じることとブラウザの閉鎖を効果的に區(qū)別し、ブラウザが完全に閉じているときにログイン情報をクリアする操作を実行できますが、この操作は1つのタブページを閉じるときに実行されません。ブラウザとユーザー設定の特定の実裝に応じて、ブラウザによってbeforeunload
イベントがインターセプトまたは遅延する可能性があることに注意する必要があります。信頼性を向上させるために、サーバー側のセッション管理などの他のテクノロジーを考慮することができます。
以上が[ブラウザ]タブを閉じることと、JavaScriptを使用してブラウザ全體を閉じることを區(qū)別する方法は?の詳細內容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Ethereumは、ブロックチェーンテクノロジーに基づいた分散型のオープンソースプラットフォームであり、開発者はスマートコントラクトと分散型アプリケーションを構築および展開できます。そのネイティブの暗號通貨はイーサリアム(ETH)であり、これは世界の市場価値を持つ主要なデジタル通貨の1つです。

toreSolventworkConnectivityIssuesUsuesは、resetthetcp/ipstackbyfirstopeningcommandpromptasadministrator、thenrunningthecommandnetshintipreset、およびfinalallycomputertoapplychanges;

OUYIは世界をリードするデジタル資産取引プラットフォームであり、ユーザーに安全で安定した信頼性の高いデジタル資産取引サービスを提供し、ビットコイン(BTC)、イーサリアム(ETH)などのさまざまな主流のデジタル資産のスポットおよびデリバティブトランザクションをサポートします。その強力な技術チームとリスク制御システムは、ユーザーのすべての取引を保護することに取り組んでいます。

Inableapplockerviagroupolicyybyopinggpedit.msc、ApplicationControlpoliciesにナビゲートし、defaultrulesを作成し、導入することを構成します

Ethereumは、ブロックチェーンテクノロジーに基づいた分散型オープンソースパブリックプラットフォームです。開発者は、スマートコントラクトと分散型アプリケーションを構築および展開できます。 Ethereum(ETH)は、Ethereumプラットフォームのネイティブの暗號通貨です。プラットフォーム上の「燃料」だけでなく、世界の市場価値を持つ主要なデジタル資産の1つでもあります。その価格の変動は、投資家から多くの注目を集めています。

Toncoin(Ton)は、元々Telegramチームによって考案された分散型の第1層ブロックチェーンです。高性能、低コスト、ユーザーフレンドリーな機能で知られており、世界中の數(shù)十億人のユーザーにオープンなネットワークプラットフォームを提供することを目指しています。そのネイティブトークントンは、ネットワークで取引手數(shù)料を支払い、誓約し、ネットワークガバナンスに參加するために使用されます。

requifythewindowsois frommicrosoftendetheetheeTheBootableusbusingthemediacutiontoorufuswithcorrectsettings;

Binanceは、世界をリードするデジタル資産取引プラットフォームであり、ユーザーに安全で安定した便利な暗號通貨取引サービスを提供します。さまざまなデジタル通貨の取引をサポートし、スポット、契約、その他の機能を提供します。
