Задать вопрос
docmikhail
@docmikhail

Как изменить iframe src из соседнего файла?

Есть два файла -- 1.php и 2.php. Расположены на веб-сервере.

В файле 1.php задумывается кнопка. В файле 2.php iframe.

Каким образом можно сделать так, чтобы нажав кнопку в 1.php изменилось содержание фрейма в файле 2.php?

Как можно реализовать подобное? Нужно ли что-то разворачивать на сервере или возможно обойтись этими двумя файлами и каким-то кодом?

Спасибо за любую помощь.
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
flapflapjack
@flapflapjack
на треть я прав
1.php и 2.php - это два скрипта, лежащих на сервере. При чем тут iframe вообще?

Вы имеете ввиду два окна в браузере соседних, а не 2 файла?
Если два окна, то насколько я знаю, можно с одного окна управлять другим, если второе окно - дочернее первого, то есть второе окно создано первым, а не открыто самим юзером вручную.

Второй способ - управляйте куками или localstorage из первого окна, а во втором отслеживайте изменения, и делайте с изменившимися данными что вашей душе угодно. Естественно эти оба окна должны быть в одном домене.

Тут есть пример того, что вы хотите.

Вот моя реализация для вас:
dev.hozmagkomi.ru/test/1.html
dev.hozmagkomi.ru/test/2.html

По клику загрузится 3.html

Код 1.html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="jquery.cookie.js"></script>

<button onclick="$.cookie('state', '3.html');">Set new state</button>


2.html:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="jquery.cookie.js"></script>
<script>

var lastState = 0;

$(document).ready(function()
{
    cookieTimer();
});

function cookieTimer()
{
    var t = $.cookie('state');
    if(t != lastState)
    {
        lastState = t;
        $('#iframe').attr('src', lastState);
    }
    window.setTimeout(cookieTimer, 500);
}


</script>
<iframe id="iframe"></iframe>


3.html сами напишете,

Не забудьте подгрузить плагин jquery.cookie

С моего сервера не грузите себе - я удалю потом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽