4

私の現在の解決策:

function isAccessToWindowRestricted(w) {
  try {
    return !w.location.href;
  } catch (e) {
    return true;
  }
}

より良いアイデアはありますか?try-catchなしで「合法的な」方法はありますか?

4

1 に答える 1

3

例外をスローせずに親フレームの値が存在することをテストする方法がないため、良い方法はありません。

これを含むいくつかのことを試しました:

var parentURL = window.parent && window.parent.location && window.parent.location.href;

何があっても、同じオリジン ポリシーにより例外がスローされます。ただし、iframe にいるかどうかを簡単に確認できます。

function checkInFrame( arg ){ arg = arg || window; return arg.parent == window; }

しかし、私の知る限りでは、try { ... } catch( ... ) { ... }ブロックを使用する必要があります (これがその目的です)。

于 2009-12-20T22:53:05.310 に答える