`window.close()` と `self.close()` が Chrome ウィンドウを閉じないのはなぜですか?
「window.close と self.close Chrome でウィンドウを閉じないでください: 包括的な説明と解決策」
一般的な考えに反して、JavaScript には実際に次のような機能があります。 Chrome であっても、スクリプトによって作成されたウィンドウを閉じます。このセキュリティ対策は、悪意のあるアクティビティを防ぐために導入され、JavaScript が同じスクリプトによって作成されていないウィンドウを閉じることを制限します。
問題の根本
window.close() 仕様によると、ブラウザは、次の条件が満たされた場合にウィンドウを閉じることを選択できます:
- ブラウジング コンテキストは「スクリプトを閉じることができる」必要があります。スクリプトによって作成されたか、セッション履歴にドキュメントが 1 つだけあります。
- 現在のスクリプトの閲覧コンテキストは、ターゲットの閲覧コンテキストに精通している必要があります。
- 現在のスクリプトの閲覧コンテキストは、
Firefox の制限
Firefox は、ターゲットの閲覧コンテキストをナビゲートすることを許可されています。 JavaScript は同じスクリプトによって開かれたウィンドウのみを閉じることができるという条件。この基準を満たさないウィンドウを閉じようとすると、「スクリプトによって開かれていないウィンドウをスクリプトで閉じることはできません。」というエラー メッセージが表示されます。
Chrome の例外
Chrome では、この規則の例外として、同じスクリプトで作成されていなくても JavaScript でウィンドウを閉じることができます。ただし、この例外はユーザー スクリプトには適用されません。
回避策
Chrome
- 自己リダイレクト エクスプロイト (非推奨): 現在のページをそのページ自体に置き換えて、ウィンドウを閉じます: open(location, '_self').close();。このエクスプロイトは現在、ほとんどブロックされています。
- TamperMonkey オーバーライド (機能制限): 明示的な // @grant ディレクティブを使用して window.close() を呼び出すと、Chrome バージョン 43 で追加のタブを閉じることができます。
Firefox
- セキュリティ設定の調整 (非推奨):allow_scripts_to_close_windows を true に設定してセキュリティ保護を無効にしますabout:config で。これにはセキュリティ上のリスクが生じることに注意してください。
長期的な解決策
ウィンドウを確実に閉じるには、Chrome 拡張機能または Firefox アドオンの開発を検討してください。これらの拡張機能は、JavaScript の制限を受けることなく、現在のウィンドウを閉じることができます。
以上が`window.close()` と `self.close()` が Chrome ウィンドウを閉じないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
