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

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

Ответы [ 13 ]

0 голосов
/ 24 июля 2015

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

Если ваш iframe не из того же источника (схема протокола, имя хоста и порт), вы не сможете узнать текущий URL в iframe, поэтому вам понадобится скрипт в документе 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);
0 голосов
/ 19 мая 2015

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

Js:

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

Html

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

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

0 голосов
/ 11 декабря 2013

Если у вас есть несколько iFrames внутри страницы, то этот скрипт может быть полезен. Я предполагаю, что в источнике 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" на нужное вам значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...