2009-06-24 15 views
0

.srcを使って 'src'属性を取得できました。しかし、私は別のドメインにあるコンテンツを取得することはできません。これはブラウザのセキュリティ上の問題ですか?別のサイトを含む<iframe>のコンテンツを取得するにはどうすればよいですか?

jQuery(document).ready(function() { 
    var elementTest = $("iframe:first").get(0); 
    alert(elementTest.src); // ok 
    alert(elementTest.innerHTML); // not ok 
}); 

答えて

1

あなたが探しているプロパティはcontentWindowです。

alert(elementTest.contentWindow.document.innerHTML); 

それは、現在のウィンドウオブジェクトに似ていますが、iframe対応:

は、このコードを試してみてください。そう、あなたもこれを行うことができます。

alert(elementTest.contentWindow.location.href); 

編集:ああ - 私はあなたがIFRAME内の別のドメインからページを持っているという事実を逃しました。 この方法は、1つのドメイン(親ウィンドウ)のブラウザに制限があり、別のドメイン(iframe)の情報にアクセスするため、うまく動作しません。

+0

これが唯一のiframe内にロードされたコンテンツは、同じドメインからの場合...彼の場合には、これは動作しません動作します。この記事をチェックしてください。 –

+0

許可が拒否されましたプロパティWindow.document – cometta

+0

この場合のように、私はGoogleガジェットに含まれていると誘惑することができます – cometta

7

はい、コンテンツを検査し、その外部ドメイン内のコードを実行することに対して、この制限same-origin policyとして知られています。

1

あなたが試みているのは、クロスドメイン通信です。これは通常の方法では動作しません(altCognitoに記載されているのと同じ元来のポリシーのため)。ただし、他のサーバーを制御できる場合はいくつかの解決方法があります。

http://msdn.microsoft.com/en-us/library/bb735305.aspx

関連する問題