Запоминать iFram SRC при обновлении родительской страницы

У меня есть интрасеть, которую я создаю, и я изучаю веб-языки по ходу дела.

У меня есть базовая страница html/php, содержащая iFrame, в который загружается большая часть моего контента.

У меня также есть окно входа в систему, которое является модальным всплывающим окном на главной странице. Когда вы заполняете это всплывающее окно и нажимаете «Войти», оно обновляет главную страницу, чтобы знать, что вы вошли в систему, и может отображать ваше имя и т. Д. И т. Д.

Однако это означает, что iframe SRC также сбрасывается до значения по умолчанию.

Есть ли способ сохранить текущий SRC iframe при обновлении родительской страницы?


person Eds    schedule 12.09.2011    source источник
comment
Можем ли мы увидеть код, пожалуйста? Также вы не упоминаете, как/когда вы меняете iframe src по умолчанию.   -  person DaveRandom    schedule 12.09.2011


Ответы (3)


Вы можете установить переменную сеанса, чтобы сохранить текущий src.

В вашем случае я бы сделал что-то вроде следующего:

Все страницы, загруженные в iframe, могут содержать код для установки переменной сеанса.

<?php

session_start(); // before any output to the user-agent / browser /screen!!!

$_SESSION['last_visited'] = $_SERVER['REQUEST_URI'];

И на странице, которая отображает iframe, вы можете просто сделать что-то вроде:

<?php

session_start(); // before any output to the user-agent / browser /screen!!!

echo '<iframe src="', $_SESSION['last_visited'], '"></iframe>';

Что касается вашего вопроса о сохранении URL-адреса в базе данных.

Вы могли бы сделать это, но я бы просто сохранил это в файле cookie.

person PeeHaa    schedule 12.09.2011
comment
Я думал, что это, вероятно, будет переменная сеанса. В настоящее время я также использую переменные сеанса для входа в систему. как мне установить URL-адрес в качестве переменной сеанса? возможно, я также могу добавить это в свою базу данных, чтобы помнить последнюю посещенную страницу пользователей. - person Eds; 12.09.2011

HTML

<form action="whatever" method="post">
...
    <input type="hidden" id="iframeSrc" name="iframeSrc"/>
    <input type="submit" onclick="addSrc()" value="Log in"/>
</form>

<iframe id="mybox" src="somepage"></iframe>

JS

function addSrc() {
   document.getElementById('iframeSrc').value = document.getElementById('mybox').src;
}

PHP

$iframeSrc = $_POST['iframeSrc'];
...
echo "<iframe id=\"mybox\" src=\"$iframeSrc\"></iframe>";
person Majid Fouladpour    schedule 12.09.2011

Почему бы просто не использовать файлы cookie?

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
person rlemon    schedule 12.09.2011