복붙노트

[JQUERY] jQuery로 iframe이 새로 고침

JQUERY

jQuery로 iframe이 새로 고침

해결법


  1. 1.iframe이 다른 도메인에 아니었다면, 당신이 뭔가를 할 수 있습니다 :

    iframe이 다른 도메인에 아니었다면, 당신이 뭔가를 할 수 있습니다 :

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

    iframe이 다른 도메인에 있기 때문에, 당신은 동일 출처 정책을 통해서 iframe 대응의 contentDocument 속성에 대한 액세스가 거부됩니다.

    코드 자체에의 src 속성을 설정하여, iframe이의 부모 페이지에서 실행중인 경우 그러나 당신은 hackishly 다시로드에 크로스 도메인 iframe을 강제 할 수 있습니다. 이 같이 :

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

    다른 iframe을에서 iframe이를 다시로드하려는 경우, 당신은 할 수 없습니다 그, 운이 있습니다.


  2. 2.

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

  3. 3.당신은 또한 JQuery와 사용할 수 있습니다. 이 알렉스 그냥 jQuery를 사용하여 제안 된 것 같습니다 :

    당신은 또한 JQuery와 사용할 수 있습니다. 이 알렉스 그냥 jQuery를 사용하여 제안 된 것 같습니다 :

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

  4. 4.jQuery로 iframe이 새로 고침

    jQuery로 iframe이 새로 고침

    할 iframe을 내부 링크 ID로 말을 할 수 = "새로 고침"다음 다음 코드를 사용하여

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

    당신은 모든 브라우저와 함께 갈 수 있습니다.

    HTML과 iframe이 새로 고침 (NO 자바 스크립트 REQ를.)

    그것은 더 간단한 해결책이 : 자바 스크립트없이 작동 (FF, 웹킷)

    당신의 iframe이 내부 앵커을

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

    이 앵커를 클릭하면 그것은 당신의 iframe이 새로 고침

    그러나 당신은 iframe에 매개 변수 전송이있는 경우 다음 다음과 같은 해.

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

    모든 페이지의 URL을하기 때문에 필요하지 않습니다 -> 대상 = "_ SELF"당신을 위해 그것을 할


  5. 5.당신이 사용할 수있는 jQuery로 :

    당신이 사용할 수있는 jQuery로 :

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

  6. 6.그냥 jQuery를 함께 알렉스의 대답하지만 왕복

    그냥 jQuery를 함께 알렉스의 대답하지만 왕복

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

  7. 7.여기에 또 다른 방법은

    여기에 또 다른 방법은

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

  8. 8.나는 위의 유일한 원래 SRC가 아닌 현재의 URL을 iframe을 다시로드 확신 모든 예제의입니다.

    나는 위의 유일한 원래 SRC가 아닌 현재의 URL을 iframe을 다시로드 확신 모든 예제의입니다.

    $('#frameId').attr('src', function () { return $(this).contents().get(0).location.href });
    

    즉, 현재의 URL을 사용하여 다시로드해야합니다.


  9. 9.당신은 단순히 항상 다시로드를 트리거하지 않습니다 동일한 URL에 SRC 다시 설정, 도메인 간 경우에도 위치 해시가 변경되면.

    당신은 단순히 항상 다시로드를 트리거하지 않습니다 동일한 URL에 SRC 다시 설정, 도메인 간 경우에도 위치 해시가 변경되면.

    이 문제에 란 수동으로 내가 URL을 업데이트 할 때 새로 고침하지 않을 트위터 버튼 iframe을 건설하고있다.

    버튼과 같은 트위터의 형식은 : ... / tweet_button.html 번호 & _ 버전 = 2 카운트가 없음 등 = ...

    트위터 해시를 변경, URL의 문서 조각을 사용하기 때문에 / 조각은 소스를 다시로드하지 않았고, 버튼 목표는 나의 새로운 아약스 -로드 된 내용을 반영하지 않았다.

    "? _ ="당신은 힘에 대해 다시로드 (예 : 쿼리 문자열 매개 변수를 추가 할 수 있습니다 + 인 Math.random ()하지만, 특히 트위터의 접근 방식은 특히 캐싱을 사용하려고했던이 예에서, 대역폭을 낭비합니다.

    단지 해시 태그로 변경 재 장전 뭔가를, 당신은 다음을 다시 할당 출구 스레드 기다린 요소를 제거하거나 SRC을 변경해야합니다. 페이지가 여전히 캐시되어있는 경우,이 네트워크 타격을 필요로하지만, 트리거를 프레임 새로 고침을 수행하지 않아야합니다.

     var old = iframe.src;
     iframe.src = '';
     setTimeout( function () {
        iframe.src = old;
     }, 0);
    

    업데이트 :이 방법을 사용하면 원하지 않는 기록 항목을 작성합니다. 대신, 제거 및 iframe 요소를 예상대로 작동이 다시 () 버튼을 계속 때마다, 다시. 또한 좋은 타이머를 가지고 할 수 없습니다.


  10. 10.그냥 jQuery를 함께 알렉스의 대답하지만 왕복 :

    그냥 jQuery를 함께 알렉스의 대답하지만 왕복 :

    var e = $('#myFrame');
        e.attr("src", e.attr("src"));
    

    또는 당신은 작은 기능을 사용할 수 있습니다 :

    function iframeRefresh(e) {
        var c = $(e);
            c.attr("src", c.attr("src"));
    }
    

    나는 그것이 도움이되기를 바랍니다.


  11. 11.

    $('IFRAME#currentElement').get(0).contentDocument.location.reload()
    

  12. 12.이 간단한 자바 스크립트 가능합니다.

    이 간단한 자바 스크립트 가능합니다.

    //function in iframe1
    function refreshIframe2()
    {
        if (<cfoutput>#didValidation#</cfoutput> == 1)
        {   
             parent.window.frames.iframe2.refreshPage();
        }
    }
    
    //function in iframe2
    function refreshPage()
    {   
        document.location.reload();
    }
    

  13. 13.// 페이지의 모든 iframe을 새로 고침

    // 페이지의 모든 iframe을 새로 고침

    var f_list = document.getElementsByTagName('iframe');
    
     for (var i = 0, f; f = f_list[i]; i++) {
                                f.src = f.src;
                            }
    

  14. 14.

        ifrX =document.getElementById('id') //or 
        ifrX =frames['index'];
    

    크로스 브라우저 솔루션입니다 :

        ifrX.src = ifrX.contentWindow.location
    

    유용 특히