Помните iFram SRC при обновлении родительской страницы - PullRequest
1 голос
/ 12 сентября 2011

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

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

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

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

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

Ответы [ 3 ]

0 голосов
/ 12 сентября 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>";
0 голосов
/ 12 сентября 2011

Почему бы просто не использовать Cookies

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);
}
0 голосов
/ 12 сентября 2011

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

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

Все страницы, которые загружены в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.

...