2011-07-20 19 views
3

私は静かな長いnwのためにこれで苦労してbinを持っています...私はJavaScriptを使ってiframeを動的に生成しています...何をしようとしているのはデフォルトのパディングと余白を取り除き、 <style> body {padding:0px; margin:0px} </style>ワットが起こるように私がしなければHERESに...私のコードiframeの体の詰め物を取り除く方法

var newDiv = create_New_Div(); //this simple returns the id of the newly created 
          //div in javascript 

     var iframeIdName="my"+inival_iframearea+"iframe"; 
     inival_iframearea++; 
     var htcontents = "<iframe id='"+iframeIdName+"' frameborder='0'></iframe>"; 
     document.getElementById(newDiv).innerHTML = htcontents; 

を0PXすることは、本体がゼロパディングとマージンを持っていますが、IFRAMEが発生した場合、ユーザーがボタンをクリックした後、このスタイルではないということですiframeボディに適用され、デフォルトのパディングとマージンがありません。感謝! ありがとう!

答えて

4

iframeに何もロードしていないので、その中のドキュメントをつかんで自分で変更する必要があります。

var 
    iframe = document.getElementById(newDiv).getElementsByTagName('iframe')[0]; 

function restyle() { 
    var body = iframe.contentDocument.body; 
    body.style.padding = 0; 
    body.style.margin = 0; 
} 

iframe.onload = restyle; 
restyle(); 

contentDocumentに関していくつかの注意点がありますので、あなたは、別のブラウザで奇妙な行動を見ることができます。また、ブラウザがsrc属性の欠落をどのように解釈するかに応じて、ドキュメントにアクセスする際に問題が発生することがあります。呼び出すページがhttpsで、srcが不足しているためにブラウザにabout:blankがロードされ、プロトコルが異なるため、同じ原点ポリシーに違反する問題がありました。

onloadの理由は、別のページを読み込んでいないにもかかわらず、ブラウザにはまだ「何か」がロードされているということです。 YMMV。

+0

jimbojwさん、ありがとうございます...その作品は完璧です!! btw私は、 "iframe.onLoad = restyle"ラインを使用しています。それはとにかくワットですか? – samach

+0

onloadのポイントは、ブラウザがiframeをまだ読み込んでいない場合を処理することです。 src属性を指定しなくても、iframeはまだそこに読み込まれたドキュメントを取得しますが、それを同期して実行することはできません。 – jimbojw

関連する問題