あなたはそれを正しく行いましたが、onload
ページが新しいウィンドウに読み込まれるまで少し時間がかかるため、必ず使用 (またはポーリング) する必要があります。
完全に機能する例を次に示します。ソース
(function() {
document.getElementById("theButton").onclick = function() {
var novoForm = window.open("http://jsbin.com/ugucot/1", "wFormx", "width=800,height=600,location=no,menubar=no,status=no,titilebar=no,resizable=no,");
novoForm.onload = function() {
var w = novoForm.innerWidth;
var h = novoForm.innerHeight;
novoForm.document.getElementById("monitor").innerHTML = 'Janela: '+w+' x '+h;
};
};
})();
セキュリティ上の制限があるのか 、それとも何か不足しているのか...
ページが明らかに同じオリジンからロードされているため、表示されている例にはありません。URL が別のオリジンからのものである場合、クロスオリジン スクリプトを禁止するSame Origin Policyに遭遇することになります。document.domain
上記のコードを含むウィンドウと読み込まれるウィンドウの両方をdocument.domain
同じ値に設定して、プロパティを介してそれを緩和できます。上記のリンクから:
2 つのウィンドウ (またはフレーム) にドメインを同じ値に設定するスクリプトが含まれている場合、これら 2 つのウィンドウの同一オリジン ポリシーは緩和され、各ウィンドウは相互に対話できます。たとえば、orders.example.com と catalog.example.com から読み込まれたドキュメント内の協調スクリプトは、それらの document.domain プロパティを「example.com」に設定する可能性があります。これにより、ドキュメントが同じオリジンを持っているように見え、各ドキュメントが読み取れるようになります。他のプロパティ。
詳細document.domain
はMDNにあります。両方のドキュメントが共通の親ドメインを共有している場合にのみ機能することに注意しapp1.example.com
てapp2.example.com
ください。example.com
example1.com
example2.com