Якщо ви спробували всі інші пропозиції, і не вдалося змусити жодної з них (як я не зміг), ось що ви можете спробувати, що може бути корисним.
HTML
<a class="refresh-this-frame" rel="#iframe-id-0">Refresh</a>
<iframe src="" id="iframe-id-0"></iframe>
JS
$('.refresh-this-frame').click(function() {
var thisIframe = $(this).attr('rel');
var currentState = $(thisIframe).attr('src');
function removeSrc() {
$(thisIframe).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(thisIframe).attr('src', currentState);
}
setTimeout (replaceSrc, 200);
});
Я спочатку мав намір спробувати заощадити деякий час на RWD та крос-браузерному тестуванні. Я хотів створити швидку сторінку, на якій розміщувалася купа іфрам, організованих у групи, які я б показував / ховав за бажанням. Логічно, ви хочете мати можливість легко та швидко оновити будь-який кадр.
Слід зазначити, що проект, над яким я зараз працюю, той, який використовується в цьому тестовому шарі, - це односторінковий сайт з індексованими місцями (наприклад, index.html # home). Це, можливо, мало щось із тим, чому я не зміг отримати жодне з інших рішень, щоб оновити свій конкретний кадр.
Сказавши це, я знаю, що це не найчистіша річ у світі, але вона працює для моїх цілей. Сподіваюся, що це комусь допоможе. Тепер якби я міг зрозуміти, як уберегти iframe від прокрутки батьківської сторінки щоразу, коли всередині iframe буде анімація ...
EDIT:
Я зрозумів, що це не "оновить" кадр, як я сподівався. Хоча він перезавантажить початкове джерело iframe. Досі не можу зрозуміти, чому я не зміг отримати жоден з інших варіантів роботи.
ОНОВЛЕННЯ
. Причиною того, що я не зміг застосувати жоден з інших методів роботи, є те, що я тестував їх у Chrome, а Chrome не дозволить вам отримати доступ до вмісту iframe (Пояснення: Чи ймовірно, що майбутні випуски вмісту підтримки ChromeWindow / contentDocument, коли iFrame завантажує локальний html-файл із локального html-файлу? ), якщо він не походить з того самого місця (наскільки я його розумію). Після подальшого тестування я також не можу отримати доступ до contentWindow у FF.
Змінено JS
$('.refresh-this-frame').click(function() {
var targetID = $(this).attr('rel');
var targetSrc = $(targetID).attr('src');
var cleanID = targetID.replace("#","");
var chromeTest = ( navigator.userAgent.match(/Chrome/g) ? true : false );
var FFTest = ( navigator.userAgent.match(/Firefox/g) ? true : false );
if (chromeTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (FFTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (chromeTest == false && FFTest == false) {
var targetLoc = (document.getElementById(cleanID).contentWindow.location).toString();
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc2() {
$(targetID).attr('src', targetLoc);
}
setTimeout (replaceSrc2, 200);
}
});
src
атрибута для себе не є чистою? Здається, це єдине рішення, яке працює в браузерах та в усіх доменах