Как обновить IFrame, используя Javascript? - PullRequest
105 голосов
/ 14 января 2010

У меня есть веб-страница с IFrame и кнопкой, после нажатия кнопки мне нужно обновить IFrame. Возможно ли это, если да, то как? Я искал и не мог найти ответы.

Ответы [ 13 ]

123 голосов
/ 14 января 2010
var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;
95 голосов
/ 14 января 2010

Это должно помочь:

document.getElementById('FrameID').contentWindow.location.reload(true);

РЕДАКТИРОВАТЬ: Исправлено имя объекта в соответствии с комментарием @ Joro.

13 голосов
/ 14 января 2010

, если iframe загружен из того же домена, вы можете сделать это, что имеет немного больше смысла:

iframe.contentWindow.location.reload();
6 голосов
/ 13 января 2014

Работает для IE, Mozzila, Chrome

document.getElementById('YOUR IFRAME').contentDocument.location.reload(true);
4 голосов
/ 14 января 2016

Вы можете использовать этот простой метод

function reloadFrame(iFrame) {

    iFrame.parentNode.replaceChild(iFrame.cloneNode(), iFrame);

}
2 голосов
/ 14 января 2010

Получил это от здесь

var f = document.getElementById('iframe1');
f.src = f.src;
1 голос
/ 21 июня 2018

Если вы используете пути хеширования (например, mywebsite.com/#/my/url), которые могут не обновлять кадры при переключении хеша:

<script>
    window.onhashchange = function () {
        window.setTimeout(function () {
            let frame = document.getElementById('myFrame');
            if (frame !== null) {frame.replaceWith(frame);}
        }, 1000);
    }
</script>

К сожалению, если вы не используете тайм-аут, JS может попытаться заменить фрейм до того, как страница закончит загружать контент (таким образом, загружая старый контент). Я не уверен в обходном пути.

1 голос
/ 20 ноября 2017

2017

Если это в одном домене, просто:

iframe.contentWindow.location.reload();

будет работать.

1 голос
/ 03 октября 2016

Прямой сброс атрибута src:

iframe.src = iframe.src;

Сброс источника с отметкой времени для очистки кэша:

iframe.src =  iframe.src.split("?")[0] + "?_=" + new Date().getTime();

Очистка src, когда опция строки запроса невозможна (URI данных):

var wasSrc = iframe.src

iframe.onload = function() {
    iframe.onload = undefined;
    iframe.src = wasSrc;
}
1 голос
/ 04 декабря 2013

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

<td><iframe name="idFrame" id="idFrame" src="chat.txt" width="468" height="300"></iframe></td>

И мой код Javascript:

window.onload = function(){
setInterval(function(){
    parent.frames['idFrame'].location.href = "chat.txt";
},1000);}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...