[Javascript] Перезагрузите iframe с помощью jQuery



Answers

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

У меня есть два iframes на странице, и один делает изменения в другом, но другой iframe не показывает изменения, пока я не обновляюсь. Есть ли простой способ обновить этот iframe с помощью jQuery?

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



Просто ответный ответ Алекса, но с jQuery:

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

Или вы можете использовать небольшую функцию:

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

Я надеюсь, что это помогает.




Только ответный ответ Алекса, но с jQuery

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



РЕШИТЬ! Я зарегистрируюсь на биржевом потоке, чтобы предоставить вам единственное решение (по крайней мере, в ASP.NET/IE/FF/Chrome), которое работает! Идея заключается в замене значения innerHTML div на его текущее значение innerHTML.

Вот фрагмент HTML:

<div class="content-2" id="divGranite">
<h2>Granite Purchase</h2>
<IFRAME  runat="server" id="frameGranite" src="Jobs-granite.aspx" width="820px" height="300px" frameborder="0" seamless  ></IFRAME>
</div>

И мой код Javascript:

function refreshGranite() {           
   var iframe = document.getElementById('divGranite')
   iframe.innerHTML = iframe.innerHTML;
}

Надеюсь это поможет.




Вот еще один способ

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



Перезагрузите iframe с помощью jQuery

сделайте ссылку внутри iframe, скажем, с id = "reload", затем используйте следующий код

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

и вы можете пойти со всеми браузерами.

Перезагрузите iframe с помощью HTML (без Java Script req.)

Он имеет более простое решение: которое работает без javaScript в (FF, Webkit)

просто сделайте привязку в своем приложении iframe

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

Когда вы нажимаете этот якорь, он просто обновляет ваш iframe

Но если у вас есть параметр, отправляемый в ваш iframe, сделайте это следующим образом.

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

не нужен URL-адрес страницы, потому что -> target = "_ SELF" сделайте это за вас




// обновлять все фреймы на странице

var f_list = document.getElementsByTagName('iframe');

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



Это возможно с помощью простого JavaScript.

  • В iFrame1 создайте функцию JavaScript, которая вызывается в теге body onload. Я проверяю переменную на стороне сервера, которую я установил, поэтому он не пытается запустить функцию JavaScript в iframe2, если я не принял конкретное действие в iframe1. Вы можете установить это как функцию, нажатую нажатием кнопки или, если хотите, в iframe1.
  • Затем в iframe2 у вас есть вторая функция, которую я перечисляю ниже. Функция в iframe1 в основном переходит на родительскую страницу, а затем использует синтаксис window.frames для запуска функции JavaScript в iframe2. Просто убедитесь, что вы используете id / name iframe2, а не src .
//function in iframe1
function refreshIframe2()
{
    if (<cfoutput>#didValidation#</cfoutput> == 1)
    {   
         parent.window.frames.iframe2.refreshPage();
    }
}

//function in iframe2
function refreshPage()
{   
    document.location.reload();
}



Links