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





js html (15)


Если вы являетесь междоменем, просто установка src обратно на тот же URL не всегда приведет к перезагрузке, даже если хеш местоположения изменится.

Займитесь этой проблемой, вручную создавая iframe кнопки Twitter, которая не обновляется при обновлении URL-адресов.

Twitter как кнопки имеют форму: .../tweet_button.html#&_version=2&count=none&etc=...

Поскольку Twitter использует фрагмент документа для URL-адреса, изменение хэша / фрагмента не перезагружает источник, а целевые кнопки не отражают мое новое загруженное ajax содержимое.

Вы можете добавить параметр строки запроса для принудительной перезагрузки (например: "?_=" + Math.random() но это будет тратить полосу пропускания, особенно в этом примере, когда подход Twitter был специально предназначен для включения кэширования.

Чтобы перезагрузить то, что изменяется только с помощью хэш-тегов, вам нужно удалить элемент или изменить src , дождаться завершения потока и затем назначить его обратно. Если страница все еще кэширована, это не должно требовать сетевого удара, но вызывает перезагрузку кадра.

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

Обновление . Использование этого подхода создает нежелательные элементы истории. Вместо этого каждый раз удаляйте и воссоздавайте элемент iframe, который удерживает эту кнопку назад (), как ожидается. Также приятно не иметь таймер.

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

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



РЕШИТЬ! Я зарегистрируюсь на биржевом потоке, чтобы предоставить вам единственное решение (по крайней мере, в 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 с помощью 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" сделайте это за вас




Ниже приведено решение:

window.parent.location.href = window.parent.location.href;



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

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

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

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

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




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



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

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



с jquery вы можете использовать это:

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



Я уверен, что все приведенные выше примеры только перезагружают iframe исходным src, а не его текущим URL.

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

Это должно перезагрузиться с использованием текущего URL-адреса.




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

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



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

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();
}



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

кросс-браузерное решение:

    ifrX.src = ifrX.contentWindow.location

это особенно полезно, когда <iframe> является объектом <form>




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



В сгенерированном JSF переключателе (с использованием <h:selectOneRadio> ) вы можете сделать это:

radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val();

где selectOneRadio ID - radobutton_id, а идентификатор формы - form_id .

Обязательно используйте имя вместо id , как указано, поскольку jQuery использует этот атрибут ( имя генерируется автоматически JSF, напоминающим идентификатор элемента управления).







javascript jquery html iframe