한 페이지에 두 개의 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; } );