クロスサイトコンテンツを持つiframeがいつajaxリクエストを完了したかを知ることは可能ですか?

別のサイトのコンテンツを表示しているiframeを使用するページがあります。そのコンテンツは、基本的にはウィザード、前方/戻るボタンなどです。コンテンツはajaxを介して更新されます。私は、ユーザーが次のボタンを押したときに、ページを上にスクロールさせるためにさまざまなことを試してきました。最もよく働いているように見えるのは、ajaxSuccessイベントに関数を追加することでした。

    $('#eyeFrame').ajaxSuccess(function() {
        alert('Triggered ajaxSuccess handler');
    });

しかしそれは決して解雇されませんでした。 iframe内のそのコンテンツとやりとりしたり、iframeがいくつかのajaxを開始したかどうかを判断するためにできることは何もないようです。それは正しいのですか、これを行う方法は私が見ていないのですか?

2
@Nealはうまくいくようですが、クイック検索で私のJSから見ることができる唯一のネットコールが私のドメインになると信じています。私はJSからのすべてのネットワーク活動を表示するリンクを得ましたか?
追加された 著者 jcollum,
@Nealこのコードを追加しました: $( "#eyeFrame")。bind({ajaxStart:function(){alert( 'ajaxStart');}}); でもiframe内からいくつかのAjaxを実行したときには起動しませんでした。
追加された 著者 jcollum,
javascriptコンソールでネットワーク接続を確認します。
追加された 著者 Neal,

1 答え

If the iframe location belongs to the same domain, you can use $('#eyeFrame').load(function(){/* */}); There are some drawback anyway http://api.jquery.com/load-event/

別のドメインについては、解決策がわかりません。

1
追加された
@topek私はpostMessageを見てきましたが、私はそれを利用するために他のドメインのコンテンツを制御する必要があると思います。
追加された 著者 jcollum,
別のドメインの場合、ブラウザのセキュリティのために解決策はありません。
追加された 著者 Kevin B,
ただし、iframe内のページからのajax呼び出しが発生すると、.loadはトリガーされません。それは私たちが親ページから聞くことができるものではありません。
追加された 著者 Kevin B,
ブラウザがサポートしている場合は、 rel="nofollow noreferrer"> postMessage を使用できますそれ。
追加された 著者 topek,
うんそれは私が言うことを忘れたものです
追加された 著者 FreeCandies,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript