質問

私は、iframe内に現在のURLをポーリングが、目的はIFRAMEのメイン文書と同じサイトを指しているかどうかを確認するためにされてJSの機能を持っています。このように、コードは基本的に

function urlCheck()
{
  var location = document.getElementById('frameid').contentWindow.location.href;
  if (location)
  {
    // iframe src is currently local
  }
  else
  {
    // iframe src is currently not local
  }
}

機能的には、このコードは完璧に動作します。しかし、エラーコンソールで、毎回この関数が呼び出されるとiframeのsrcが、私はエラーを取得するローカルではありません。

Permission denied for [site1] to get property Location.href from [site 2]

どのように私はこれらのエラーを回避するために、自分のコードを修正することができますか?

おかげで、 マラ

役に立ちましたか?

解決

のtry-catchをのブロックをキャッチし、これらのエラーに対処することができる必要があります。

他のヒント

実際には、エラーメッセージは、あなたが欲しい情報である:とすぐに別のドメインへのiframeポイントのURLなど、あなたが権限エラーを取得します。これは XSS攻撃を回避するための安全対策です。

[EDIT]これは、あなたが上記のコードを置き換えることができることを意味します:

function urlCheck()
{
  try
  {
    document.getElementById('frameid').contentWindow.location.href;

    // iframe src is currently local
  }
  catch (e)
  {
    // iframe src is currently not local
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top