例:メインページにiframeがあり、iframeにボタンがあります。iframe内のボタンを押すと、いくつかのスクリプトが実行され、iframeのデザインが変更されます。テキストなどが表示されます。
iframeスクリプトが実行されたことを検出するにはどうすればよいですか?(またはボタンが押されましたか?)
iframeは別のドメインのものです。
例:メインページにiframeがあり、iframeにボタンがあります。iframe内のボタンを押すと、いくつかのスクリプトが実行され、iframeのデザインが変更されます。テキストなどが表示されます。
iframeスクリプトが実行されたことを検出するにはどうすればよいですか?(またはボタンが押されましたか?)
iframeは別のドメインのものです。
iframeのコンテンツが外部ページとは異なるドメインからのものである場合、それはできません。ブラウザは、iframe内で何が起こっているのかを意図的に伝えることができないようにします。ただし、フレームが変更された場合にフレームが指しているURLを取得することで実行できます。
同じドメインで実行されている場合は、iframeのドキュメントプロパティを介して通常行うのとほぼ同じ方法で、iframe内の要素にアクセスできます。
メインページとiframeが同じドメインにある場合は、iframe内のJavaScriptで関数を呼び出すか、親フレームの要素にアクセスできます。
したがって、iframeのスクリプトの最後で次のことができます
parent.script_is_finished();
iframe内のスクリプトを制御できる場合はwindow.postMessage
、メインページが異なるドメインにある場合でも、メインページとの通信に使用できます。
これのサポートは、FF3 +、IE8 +、Chrome、Safari(5?)、Opera10+に制限されています
これがhtml5demosのデモです。
iframe
が別のドメインからのものであるという事実の更新として:
簡単な答え:iframe
いいえ。別のドメインからのクリックを検出することはできません。
長くても短い答え:できない理由は、コンテンツを変更できる理由と同じです。同じドメインにない限り、iframe
セキュリティ上のリスクがあります。別のドメインからのソース内のユーザーアクティビティを追跡することはできません。iframe
iframe
申し訳ありませんが、お役に立てば幸いです。