Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2017, 11:41
Интересующийся
Отправить личное сообщение для Nikk Посмотреть профиль Найти все сообщения от Nikk
 
Регистрация: 04.04.2017
Сообщений: 13

Подставить произвольное значение в адрес iframe
Добрый день!
Подгружаю на страницу через iframe файл, который генерируется автоматически (и часто обновляется).
Проблема в том, что этот файл кешируется браузером и посетителю показывается старая версия.

Необходимо заставить браузер при каждой загрузке страницы загружать фрейм заново.

iframe выводится на страницу так:
Код:
<iframe src="file1.htm" id="change_frame"></iframe>
(Здесь id="change_frame" используется для другого скрипта и к задаче отношения не имеет).

Нашел вот такой скрипт, который генерирует каждый раз новую ссылку (браузер будет загружать ее каждый раз заново):

Код:
<script>
document.getElementById(ID).href = 'file1.htm?' + Math.random();
</script>
Если бы в коде фрейма уже не использовалось бы значение id для другого скрипта, можно было бы вставить новую ссылку типа file1.htm?0.121515454556445 с помощью id скрипта Math.random. Но id уже используется.
Как здесь поступить? Можно ли в поле src каким-то образом вписать значение 'file1.htm?' + Math.random()?
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2017, 12:12
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

document.getElementById(ID).href = document.getElementById(ID).href.replace(/\?.*$/, '?' + Math.random())
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2017, 12:29
Интересующийся
Отправить личное сообщение для Nikk Посмотреть профиль Найти все сообщения от Nikk
 
Регистрация: 04.04.2017
Сообщений: 13

Спасибо за ответ! Но вы не могли бы чуть подробнее пояснить? Что мне вставлять в поле src тега iframe?

Последний раз редактировалось Nikk, 04.04.2017 в 12:45.
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2017, 23:59
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Походу простая замена @src в <iframe/> ни к ему не приводит. Вывод: надо будет создавать новый <iframe/> и вставлять в него изменённый @src .
PS фреймами не пользуюсь так что не скажу баг это или фича
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2017, 07:16
Интересующийся
Отправить личное сообщение для Nikk Посмотреть профиль Найти все сообщения от Nikk
 
Регистрация: 04.04.2017
Сообщений: 13

Только непонятно, как это реализовать...
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2017, 13:53
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<body>
Всегда свежий фрейм
</body>
<script>
var ifrm = document.createElement('iframe');
ifrm.style="width:100%;height:250px;";
ifrm.src = "https://javascript.ru/forum/misc/68243-podstavit-proizvolnoe-znachenie-v-adres-iframe.html";
var parentElem = document.body;
parentElem.appendChild(ifrm);
</script>

Последний раз редактировалось Dilettante_Pro, 25.05.2017 в 14:00.
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2017, 08:34
Интересующийся
Отправить личное сообщение для Nikk Посмотреть профиль Найти все сообщения от Nikk
 
Регистрация: 04.04.2017
Сообщений: 13

Решил проблему так:

var ms;
Today = new Date();
ms = Today.getMilliseconds();
var url="file.html?"+ms
Ответить с цитированием
  #8 (permalink)  
Старый 25.05.2017, 16:08
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var frame = document.getElementById('change_frame');

frame.src = 'file.html?' + Date.now();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Fancybox - передать значение в iframe spo jQuery 21 11.03.2015 12:14
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Как получить значение атрибута тега iframe? Dimaz Общие вопросы Javascript 5 15.12.2012 15:40