30

別のドメインにある Iframe から親ドメインの URL にアクセスする必要があります。

たとえば、「example.com」は、「google.com」などの別の親ドメインからの Iframe を持つ私の Web サイトです。ここでは、example.com から親ドメインの URL にアクセスする必要があります。つまり、「example.com」ドメインで URL「google.com」を取得する必要があります。さらに、親ドメインはハードコーディングできません。

私が試したのは、次のコードを使用していたことです。

window.parent.location.href()

しかし、これによりアクセス拒否エラーが発生します。これを達成するためにこれを適切に実装するにはどうすればよいですか?

4

6 に答える 6

34

リファラーを試してみることができます。これは、iframe の場合は親サイトである必要があります。

あなたはこのようにすることができます:

var href = document.referrer;
于 2010-06-22T18:57:09.953 に答える
14

これらの質問/回答をご覧になることをお勧めします。彼らはあなたの問題に関するいくつかの情報を提供することができます:

簡単に言うと、セキュリティ上の理由から、別のドメインから iframe にアクセスすることはできません。これは、表示されるエラー メッセージを説明しています。


ウィキペディア の同一生成元ポリシーページには、そのセキュリティ対策に関する情報がいくつか記載されています。

簡単に言えば、このポリシーは、同じサイトからのページで実行されているスクリプトが、特定の制限なしに互いのメソッドとプロパティにアクセスすることを許可しますが、異なるサイトのページにまたがるほとんどのメソッドとプロパティへのアクセスを防ぎます。

データの機密性や完全性が失われないように、クライアント側では、関連のないサイトから提供されるコンテンツを厳密に分離する必要があります。

于 2009-09-04T10:34:43.217 に答える
1

いくつかのオプションがあります。

  1. iframe含まれているページと同じものの両方でドメインを絞り込みます (document.domain を参照) 。そうすれば、それらは「同じ起源」の制約によって拘束されません。

  2. 通信には、すべての HTML5 ブラウザーでサポートされている postMessage を使用しますcross-domain

于 2011-11-29T16:13:45.567 に答える
0

良い記事: iframe を使用したクロスドメイン通信

また、両方のフレームで同じ document.domain を直接設定することもできます (

document.domain = document.domain;

ポートを null にリセットするため、コードには意味があります) が、このトリックは汎用的ではありません。

于 2012-01-25T13:57:58.650 に答える
-2

試す

window.frameElement.ownerDocument.domain
于 2012-11-09T00:14:05.317 に答える