From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reference/errors/dead_object/index.html | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 files/ja/web/javascript/reference/errors/dead_object/index.html (limited to 'files/ja/web/javascript/reference/errors/dead_object') diff --git a/files/ja/web/javascript/reference/errors/dead_object/index.html b/files/ja/web/javascript/reference/errors/dead_object/index.html new file mode 100644 index 0000000000..b45b644b14 --- /dev/null +++ b/files/ja/web/javascript/reference/errors/dead_object/index.html @@ -0,0 +1,51 @@ +--- +title: 'TypeError: can''t access dead object' +slug: Web/JavaScript/Reference/Errors/Dead_object +tags: + - Addon + - Addons + - Error + - Errors + - JavaScript +translation_of: Web/JavaScript/Reference/Errors/Dead_object +--- +
{{JSSidebar("Errors")}}
+ +

メッセージ

+ +
TypeError: can't access dead object
+
+ +

エラータイプ

+ +

{{jsxref("TypeError")}}

+ +

何がうまくいかなかったのか?

+ +

メモリ使用の向上とメモリリーク防止のため、Firefox はアドオンに対して、親ドキュメントが破棄された後に DOM オブジェクトへ強い参照を保持することをできなくしています。死んだオブジェクトは、DOM で棄された後にもかかわらず、存続する DOM 要素への強い参照を保持しています。この問題を回避するために、外部ドキュメント内の DOM ノードへの参照を、そのドキュメントに固有のオブジェクトに格納し、ドキュメントがアンロードされるときにクリーンアップするか、または弱い参照にするべきです。

+ +

オブジェクトが破棄されているか確認する

+ +

Components.utils は特権コードで使用できる isDeadWrapper() メソッドを提供しています。

+ +
if (Components.utils.isDeadWrapper(window)) {
+  // dead
+}
+ +

非特権コードは Component.utils にアクセスできないため、例外をキャッチするしかありません。

+ +
try {
+  String(window);
+}
+catch (e) {
+  console.log("window is likely dead");
+}
+ +

関連項目

+ + -- cgit v1.2.3-54-g00ecf