2011-10-30 5 views
0

私はフォームの横にウェブサイトを表示するためにiframeを使用しています。さまざまな入力フィールドの値に基づいて、そのiframe内の特定のコンテンツを更新したいと考えています。iFrame内のコンテンツをjQueryを使用してライブ&オンザフライで更新する...?

これは私が(IFRAMEの作業外)をやろうとしているものです:http://jsfiddle.net/YkKUS/

テキストエリアは、iframeの外になり、更新されます内容は、iframeの内側になります。

  $('.liveDemoFrame').load(function(){ // load the iframe   
       $(this.contentDocument).find('h1').html($('textarea').val());     
       $('textarea').keyup(function() { 
        $(this.contentDocument).find('h1').html($(this).val()); // this line is screwing something up?!? 
       });  
      }); 

第5行は私にいくつかの問題を引き起こしている。ここで

は私のコードは私のiframeで動作するようになっています。 iframeは実際には私のテキストエリアの内容で正常に更新されますが、ページを更新するときだけです。それは私がこれをやっている唯一の理由は、ライブで更新されていない&オンザフライ!

ありがとうございます!

+0

ああ、あなただけがjsfiddleにあなたの完全なコードを書いていたら、私は見ました。これはあなたのkeyup関数で、iframeではなくtextarea dom要素を参照しています! –

答えて

1

私は親ページでこれを行なったし、動作するように見えた:

$(document).ready(function(){ 
    $('#textarea').bind('keyup', function() { 
     var iframedoc = $('#iframe').get(0).contentDocument; 
     $(iframedoc).find('h1').html($(this).val()); 
    }); 
}); 
+0

Yessssss!本当にありがとう。それは完璧に働いています。 – tctc91

0

jQueryに何らかの不具合があるか、間違っている可能性があります。いずれにしても、コードの半分を実際に実行するのが最も簡単です。 iframe; iframe.contentWindow.getHtml()またはiframe.contentWindow.setHtml()を呼び出すことができます。また、IIRCでは、contentDocumentも標準ではありませんでした。一部のブラウザではcontentWindow.documentなどが必要です。

しかし、主犯はこのようになります:

$('.liveDemoFrame').load(function(){ 
    var iframeDocument = $(this.contentDocument); 
    iframeDocument.find('h1').html($('textarea').val()); 
    $('textarea').keyup(function() { 
     // here this refers to textarea dom element, not iframe 
     iframeDocument.find('h1').html($(this).val()); 
    });  
}); 
-1

あなたはそれの外部からiframe内にものを行うことができないよう

$('.liveDemoFrame').load(function(){ 
    $(this.contentDocument).find('h1').html($('textarea').val()); 
    $('textarea').keyup(function() { 
     // here this refers to textarea dom element, not iframe 
     $(this.contentDocument).find('h1').html($(this).val()); 
    });  
}); 

修正は可能性があり、大規模になることセキュリティホール

+0

本当ですか?私はうまく動作するiframe内の特定の領域にhide()のようなものを使用できますが、keyupイベントはまったく動作しません。 – tctc91

+0

hmm、iframeは親ページと同じドメインですか? – Iain

+0

そうです。私はiframeページ内にjqueryを含めると問題が発生する可能性があるので、どこかでそれを削除しようとしましたが、まだ運がないと読んでいます。 – tctc91

関連する問題