javascriptと親/子の窓に「with with」キーワードを備えた興味深い癖
-
28-10-2019 - |
質問
JavaScriptのキーワードと親と子のウィンドウの関係、特にwindow.openerについて、「with with」キーワードについて何か独特なことに気づきました。私はこれを親のウィンドウからテストしていませんが、子供だけですが、以下の例では注目に値します -
親ウィンドウ(parent.html):
// global scope
function ParentFunc() { alert("I am a parent function"); }
チャイルドウィンドウ(child.html):
// global scope
var baseWin = window.opener;
// "this" keyword corresponds to Child.html when function below is called
function Child_Onclick_Func()
{
alert("Hi, from Child");
with (baseWin)
{
ParentFunc();
alert("Hi, from Parent");
}
alert("Hi, back to Child");
}
この場合、「with with」キーワードは親ウィンドウに切り替え、2番目のアラートは親ウィンドウに暗黙のオンフォーカスを発射します。 「with」が親ウィンドウに切り替えることに気づいていませんでしたが、今は理にかなっています。
解決
これは起こるからです window
WebブラウザでJavaScriptを実行するときのグローバルネームスペースです。あなたが書くとき:
alert('Hello, World!');
あなたは実際に電話をかけています window.alert
方法。
所属していません StackOverflow