1

私はすでにこのウェブサイトから JavaScript コードを受け取りました。

alert(window.frames['sc_frame'].document.getElementsByTagName('body')[0].innerHTML);

また

alert(window.frames['sc_frame'].document.getElementsByTagName('body')[0].innerText);

問題は、このエラーが発生していることです。

Unsafe JavaScript attempt to access frame with URL http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx from frame with URL http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Domains, protocols and ports must match.
(anonymous function)
InjectedScript._evaluateOn
InjectedScript._evaluateAndWrap
InjectedScript.evaluate
TypeError: Cannot call method 'getElementsByTagName' of undefined
arguments: Array[2]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "non_object_property_call"
__proto__: Error

IFrame別のドメインを呼び出しているため、原因も理解しています。

<iframe id="sc_frame" src="http://example1.com"></iframe>

から上記のコードを使用しますhttp://example.com

私の質問は、これに対する回避策があるかどうかです。JavaScriptまたは他の方法を使用していますか?

4

1 に答える 1

0

セキュリティ上の制約により、ドメイン (/ports/protocols) を越えて本体内の他の要素と直接通信することはできません。対象のドキュメント ソースにアクセスできないだけでなく、オブジェクトやイベントにもアクセスできません。

できることは、プロキシ経由でドメイン間でメッセージを送信するためのフレームワークを使用することです。 この答えはそれについて語っています。

于 2012-12-26T14:05:48.563 に答える