2011-10-30 4 views
0

iframe을 사용하여 양식 옆에 웹 사이트를 표시하고 있습니다. 다양한 iframe 값을 기반으로 해당 iframe 내의 특정 콘텐츠를 업데이트하고 싶습니다.iFrame에서 jQuery를 사용하여 콘텐츠를 실시간으로 실시간 업데이트 ...?

이 내가 (iframe을의 작업 외부) 할 노력하고있어 무엇 : http://jsfiddle.net/YkKUS/

텍스트 영역은 iframe이와 iframe이 내부에있을 것입니다 업데이트됩니다 내용의 외부됩니다. 여기

는 내 코드 내 iframe이 작동하도록되어있다 : 제 5 라인은 나에게 몇 가지 문제를 일으키는

  $('.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?!? 
       });  
      }); 

. iframe은 실제로 내 textarea의 내용으로 성공적으로 업데이트되지만 페이지를 새로 고칠 때만 성공적으로 업데이트됩니다. 그것은 업데이 트가 아니에요 라이브 & 그 날이 일을하고있는 유일한 이유입니다!

감사합니다.

+0

아, 이제 jsfiddle에 전체 코드를 넣었 으면합니다. keyup 함수에서 this는 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

흠, iframe은 상위 페이지와 동일한 도메인입니까? – Iain

+0

예. 어딘가에 iframe 페이지에 jquery를 포함 시키면 문제가 발생할 수 있으므로이 태그를 제거하려고 시도했지만 여전히 운이 없다. – tctc91