06/03/30 12:59:52
extension の変数/関数のスコープというか名前空間というか
がまだよくわからないんですが…。
オーバーレイしない .xul の場合は、そこで名前空間が閉じていて、
そこで読み込んだ js 以外のものとの名前衝突は起こらないと考えてよいでしょうか?
また、もちろん変数領域などは .xul を開いた数だけ存在するんですよね?
で、オーバーレイしてる場合は、オーバーレイした対象の XUL の空間(window)上に変数
などが定義されるので、すでに定義されている変数や関数との衝突が起こりうるので、
オーバーレイする対象がロードしている js 実装を理解するか、prefix を使うかしないと
いけないってことでよいでしょうか?
オーバーレイしてない場合でも、xul から自作以外の js をロードしている場合は
同様に気を使わないといけないですよね?
.js 内のグローバル変数は怖いな…。
うかつにロードすると別インスタンスになるんですよね…?
# たとえば、非オーバレイ xul から browser.js の関数が呼びたいといって
# script src="chrome://browser/content/browser.js"
# とかやるのは危険ってことですよね?