jQuery로 iframe 다시로드 변경 사항을

한 페이지에 두 개의 iframe이 있고 하나는 다른 하나를 변경하지만 다른 iframe은 새로 고칠 때까지 변경 사항을 표시하지 않습니다. 이 iframe을 jQuery로 쉽게 새로 고칠 수 있습니까?

<div class="project">
  <iframe id="currentElement" class="myframe" name="myframe" src="http://somesite.com/something/new"></iframe>
</div>



답변

iframe이 다른 도메인에 있지 않은 경우 다음과 같이 할 수 있습니다.

document.getElementById(FrameID).contentDocument.location.reload(true);

그러나 iframe이 다른 도메인 contentDocument에 있으므로 동일한 출처 정책 에 따라 iframe의 속성에 대한 액세스가 거부됩니다 .

그러나 코드가 iframe의 상위 페이지에서 실행 중이면 src 속성을 자체로 설정하여 크로스 도메인 iframe을 강제로 다시로드 할 수 있습니다. 이처럼 :

// hackishly force iframe to reload
var iframe = document.getElementById(FrameId);
iframe.src = iframe.src;

다른 iframe을에서 iframe이를 다시로드하려는 경우, 당신은 운이있다 입니다 하지 가능합니다.


답변

$( '#iframe' ).attr( 'src', function ( i, val ) { return val; });


답변

jquery를 사용할 수도 있습니다. Alex가 JQuery를 사용하여 제안한 것과 동일합니다.

 $('#currentElement').attr("src", $('#currentElement').attr("src"));


답변

jQuery로 iframe 다시로드

iframe 안에 링크를 만들어 id = “reload”라고 말한 후 다음 코드를 사용하십시오.

$('#reload').click(function() {
    document.location.reload();
});

모든 브라우저를 사용하는 것이 좋습니다.

HTML을 사용하여 iframe을 다시로드하십시오 (Java Script 필요 없음)

더 간단한 솔루션이 있습니다 : (FF, Webkit)에서 javaScript없이 작동합니다.

iframe에 고정하십시오

   <a href="#" target="_SELF">Refresh Comments</a>

이 앵커를 클릭하면 iframe을 새로 고칩니다.

그러나
iframe에 매개 변수를 보내면 다음과 같이하십시오.

  <a id="comnt-limit" href="?id=<?= $page_id?>" target="_SELF">Refresh Comments</a>

-> target = “_ SELF”때문에 페이지 URL이 필요하지 않습니다.


답변

jquery로 이것을 사용할 수 있습니다 :

$('#iframeid',window.parent.document).attr('src',$('#iframeid',window.parent.document).attr('src'));


답변

알렉스의 대답을 왕복하지만 jQuery로

var currSrc = $("#currentElement").attr("src");
$("#currentElement").attr("src", currSrc);


답변

다른 방법이 있습니다

$( '#iframe' ).attr( 'src', function () { return $( this )[0].src; } );