Как обновить IFrame с помощью Javascript?

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

Ответ 1

var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;

Ответ 2

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

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

EDIT: Исправлено имя объекта в соответствии с комментарием @Joro.

Ответ 3

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

iframe.contentWindow.location.reload();

Ответ 4

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

document.getElementById('YOUR IFRAME').contentDocument.location.reload(true);

Ответ 5

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

var f = document.getElementById('iframe1');
f.src = f.src;

Ответ 6

Вот фрагмент 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);}

Ответ 7

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

function reloadFrame(iFrame) {

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

}

Ответ 8

Если на странице есть несколько iFrames, то этот script может быть полезен. Я предполагаю, что в источнике iFrame существует определенное значение, которое может быть использовано для поиска конкретного iFrame.

var iframes = document.getElementsByTagName('iframe');
var yourIframe = null
for(var i=0; i < iframes.length ;i++){
    var source =  iframes[i].attributes.src.nodeValue;
    if(source.indexOf('/yourSorce') > -1){
        yourIframe = iframes[i];
    }   
}
var iSource = yourIframe.attributes.src.nodeValue;
yourIframe.src = iSource;

Замените "/yourSource" на нужное значение.

Ответ 9

Если ваш URL-адрес iframe не изменяется, вы можете просто восстановить его.

Если ваш iframe не имеет то же происхождение (схема протокола, имя хоста и порт), вы не сможете узнать текущий URL-адрес в iframe, поэтому вам понадобится script в документе iframe для обмена сообщениями с его родительским окном (окно страницы).

В документе iframe:

window.addEventListener('change', function(e) {
  if (e.data === 'Please reload yourself') {
    var skipCache = true; // true === Shift+F5
    window.location.reload(skipCache);
  }
}

На вашей странице:

var iframe = document.getElementById('my-iframe');
var targetOrigin = iframe.src; // Use '*' if you don't care
iframe.postMessage('Please reload yourself', targetOrigin);

Ответ 10

Сброс атрибута src напрямую:

iframe.src = iframe.src;

Сброс 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;
}

Ответ 11

2017

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

iframe.contentWindow.location.reload();

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

Ответ 12

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

Js:

function refreshFrame(){
    $('#myFrame').attr('src', "http://blablab.com?v=");
}

Html:

`<iframe id="myFrame" src=""></iframe>`

JS Fiddle: https://jsfiddle.net/wpb20vzx/