2011-10-28 18 views
1

次のコードが機能し、本文のクリック時にアラートを発生させることができます。私がしたいのは、iframeが読み込まれ、iframe内のテーブルの幅を自動的に100%に変更することです。クリックの代わりに、どのように幅の読み込みを変更できますか?iframe内のsrcのサイズ変更onload src

$("iframe[name=myheader]").load(function() { 
      var iframe_body = window.myheader.document.getElementsByTagName("body")[0]; 
      $(iframe_body).click(function() { 
       alert("hello, you touched me~"); 
       $(this).find("table").css("width","100%"); 
      }); 

     }); 
+7

フレームページは、同じドメイン内にある同じドメイン –

+0

にしておく必要があります。 ** click。**を**に変更すると、アラートをそのまま残しておくと動作します。遅延が発生するまでテーブルが見つからない、iframeの実際のコンテンツが完全にレンダリングされていない可能性があります。 – Rob

+7

なぜテーブル自体を含むページにサイズ変更コードを入れないのですか? –

答えて

0

あなたのiframeのドキュメントにこのコードを入れて:)

$(document).ready(function(){ 
$("table").css("width","100%"); 
}); 

をOLD ------------------

iframeのload()関数はiframeのロードが完了したときにのみ起動されるので、click()イベントを削除してサイズを変更できます。

$("iframe[name=myheader]").load(function() { 
      var iframe_body = window.myheader.document.getElementsByTagName("body")[0]; 
      //$(iframe_body).click(function() { 
       alert("hello, you touched me~"); 
       $(this).find("table").css("width","100%"); 
      //}); 

     }); 
+0

は動作しません。上記のコメントを参照してください。 – Rob

+0

これは動的に作成されたiframeなので、$( "table ... in doc readyは動作しません。 – Rob

0

iframeのonloadイベントを試すことができます。あなたのiframeのJavaScriptコードでは今、この

<iframe id="frameElem" width="100%" height="100%" onload="frameLoaded(); return false" /> 

のようなものであれば、例えば、

function frameLoaded(){ 
    $('#frameElem').contents().find('table').css("width","100%"); 
    } 
関連する問題