1

例:メインページにiframeがあり、iframeにボタンがあります。iframe内のボタンを押すと、いくつかのスクリプトが実行され、iframeのデザインが変更されます。テキストなどが表示されます。

iframeスクリプトが実行されたことを検出するにはどうすればよいですか?(またはボタンが押されましたか?)

iframeは別のドメインのものです。

4

4 に答える 4

3

iframeのコンテンツが外部ページとは異なるドメインからのものである場合、それはできません。ブラウザは、iframe内で何が起こっているのかを意図的に伝えることができないようにします。ただし、フレームが変更された場合にフレームが指しているURLを取得することで実行できます。

同じドメインで実行されている場合は、iframeのドキュメントプロパティを介して通常行うのとほぼ同じ方法で、iframe内の要素にアクセスできます。

于 2012-08-24T09:11:17.603 に答える
0

メインページとiframeが同じドメインにある場合は、iframe内のJavaScriptで関数を呼び出すか、親フレームの要素にアクセスできます。

したがって、iframeのスクリプトの最後で次のことができます

parent.script_is_finished();
于 2012-08-24T09:15:41.443 に答える
0

iframe内のスクリプトを制御できる場合はwindow.postMessage、メインページが異なるドメインにある場合でも、メインページとの通信に使用できます。

これのサポートは、FF3 +、IE8 +、Chrome、Safari(5?)、Opera10+に制限されています

これがhtml5demosのデモです。

于 2012-08-24T09:29:31.357 に答える
0

iframeが別のドメインからのものであるという事実の更新として:

簡単な答え:iframeいいえ。別のドメインからのクリックを検出することはできません。

長くても短い答え:できない理由は、コンテンツを変更できる理由と同じです。同じドメインにない限りiframeセキュリティ上のリスクがあります。別のドメインからのソース内のユーザーアクティビティを追跡することはできません。iframeiframe

申し訳ありませんが、お役に立てば幸いです。

于 2012-08-24T09:35:17.807 に答える