2016-09-22 6 views
0

私はフォームがIFRAME内に提出されたときにenventをバインドしようとしているが、私はいくつかの問題を抱えている:私はバインドイベントにも変更URL

初の試みをページが読み込まれたときにenventをバインドしようとしましたが、それは機能しましたが、ページが完全に読み込まれたときにのみバインドされます。

$('#mainFrame').on("load", function() 
{ 

    $('#mainFrame').contents().find('form').submit(function(){ 

     $('#overlay').addClass("overlay"); 

    }); 
}); 

は、その後、私は準備ができてイベントに

$('#mainFrame').ready(function() 
{ 

    $('#mainFrame').contents().find('form').submit(function(){ 

     $('#overlay').addClass("overlay"); 

    }); 
}); 

を使用しようとしたが、URLが変更されたときに、それが呼び出されていません。

第二の試み:

私は、IFRAME内のすべての入力にイベントをバインドしようとしましたが、私はそれが(.contentsなしiframe要素にアクセスすることができないと思います)

$('#mainFrame').on("click", 'input',function(){ 


    $('#overlay').addClass("overlay"); 

}); 

PS : iframeのページは同じドメインのものです

誰かが私を助けることができますか?

+1

へiframeの内容にアクセスするには、完全にロードされるまで待つ必要があるため、最初の例のようにイベントをloadにバインドします。 – zer00ne

+0

いくつかのページはすべてのリソースを完全にロードするには時間がかかりません.DOMがロードされた直後にイベントをバインドするために.readyのようなものが必要です –

+0

その場で準備ができているiframeに頼らないでください。 iframeの代わりに、 '.load()'や '.get()'を使ってメインページの指定された領域でhtmlをインポートすることができます。あなたのコンテンツが巨大である場合、あなたのコンテンツを細かい部分に分割して、必要に応じてロードするようにレイアウトを書き直したいかもしれません。 – zer00ne

答えて

0

これはコメントですが、私はカルマを持っていません。スパムのために申し訳ありません。

負荷があなたが多分提出形成するためにこのコードを追加し、IFRAME内からイベントをtrigerringを検討するために減速するが起こるの場合:

window.parent.jQuery(window.parent.document).trigger('iframestuff'); 

と親ページにそれを聞く:

$(document).on('iframestuff', function(){ 
}); 
+0

それは可能かもしれませんが、少なくとも2千ページ分のテンプレートを持つプログラムはありますので、親ページでこれを解決できる方が良いでしょう –

関連する問題