0

ウィンドウを開閉するための以下のコードは、Java スクリプト エラー「メンバーが見つかりません」をスローします。これはすべてのマシンで発生するわけではありませんが、IE 8 を使用する特定のユーザーで発生します。次のコードの winobject.blur() がエラーをスローしています。

var winobject=null;   
winobject = window.open('URL','Name',"width=1,height=1,top=2000,left=2000");
if(winobject!=null){
    winobject.blur();
    self.resizeTo(screen.availWidth,screen.availHeight);
    winobject.close();
    ...
}

この問題を解決するためのヘルプや提案はありますか?

いくつかの追加の観察 - この問題は、「名前」を持つウィンドウが既に存在する場合にのみ発生します。ユーザーが既に開いているポップアップ ウィンドウを閉じている場合、コードは正常に実行されます。また、現在の window.open の下にもう 1 つ追加すると、blur() が呼び出されたときに例外がスローされません。なぜかわからないのですが?

4

1 に答える 1

1

if (typeof winobject != "undefined")

今日、職場でこのような問題が発生しました。試してみてください。準備ができているはずです。

編集:

何が起こっているのかを説明しているように見える次のリンクを見つけました。自分でそれを作成しているためwindow、IE8 の「セキュリティ」によって、多くの一般的なアクションが妨げられています。

回避策としての私の次の提案は、 and の両方をandwinobject.blur()winobject.close()囲むことです。メソッドを呼び出すのではなく、メソッドの存在を探しているため、's の前後に括弧がないことに注意してください。if (winobject.blur)if (winobject.close())blurcloseif

残念ながら、同じ効果を得るために使用できる代替手段が何であるかはわかりません. しかし、うまくいけば、エラーがスローされるのを防ぐはずです。

于 2013-02-08T00:43:53.690 に答える