2011-08-10 7 views
14

の参照をnullを返します)私は以下のような何かをしようとしています、は()の代わりに開かれたウィンドウ

var myWindow = null; 
if(!myWindow || myWindow.closed) 
{ 
    myWindow = window.open(url, windowId); 
} 
else 
{ 
    myWindow.focus(); 
} 

すべてのブラウザは、(window.openのためにウィンドウREFを返しますが、 IE 9はNULLを返します。誰かがなぜnullが返されるか、あるいはIE9のための回避策の解決策に関する情報がありますか?

+3

私たちがIE6の暗い昔を過ぎ去ったと思った時... –

+0

本当ですか?それはヌルではなく、オブジェクトを返すようです。 – Steve

+0

ポップアップがブロックされている場合、「null」を返すと思います。それが自動ポップアップの場合。しかし、それがクリックで発せられた場合、それは機能します。 –

答えて

5

あなたの好きなところ、あなたのwindowIdは何ですか?それにはスペースがありますか?

apparently IE9 will fail if there's a space in the window titleです。 がモード保護有効にした場合

+0

呼び出しが失敗すると、IE7 +はしばしば子ウィンドウのハンドルではなく呼び出しからnullを返します。 – Novikov

+0

ウィンドウIDにスペースがありません。その "mywindow" – srayker

+0

これは私の問題でした!ありがとうOZ! – Rocklan

24

window.openはNULL参照オブジェクトを返します。このゾーンためインターネットオプション]> [セキュリティ] - > [セキュリティレベルの下にチェックし、ZONEは、私の場合、イントラネットからのポップアップを開くローカルファイルにすなわち異なっています。

window.openがモード保護有効にしても、参照オブジェクトを返しますがmysite.comがポップアップウィンドウにsomeothersite.comを開いたとき、すなわちInternet->インターネット

0

は、実は私の場合、私はwindow.open参照を取得してチェックされていますlocalhostまたはイントラネットのサイトURLを開いている場合はnullです。私のポップアップにインターネットサイトのURLが含まれている場合、ウィンドウオブジェクトが参照されています。私はこの解決するには、次のでした :[セキュリティ]タブに

  • オープンIE]> [ツール]> [インターネットオプション]
  • Go]を
  • チェックボックス
  • 再起動IE今

をクリックすることにより、保護モードを有効にします、それはイントラネットサイトで開いたポップアップウィンドウのウィンドウオブジェクトリファレンスを私に与え始めました。 これが役立つことを願っています。

関連する問題