刷新父页面时请记住iFrame SRC

时间:2011-09-12 15:24:09

标签: php iframe refresh src

我正在构建一个内部网,我正在学习网络语言。

我有一个基本的html / php页面,其中包含一个iFrame,我的大部分内容都已加载到其中。

我还有一个登录框,它是主页面中的弹出模式。 当您填写此弹出窗口并点击登录时,它会刷新主页面,以便它知道您已登录,并可以显示您的姓名等。

但是,这意味着iframe SRC也会重置为默认值。

刷新父页面时,有没有办法保留iframe当前的SRC?

3 个答案:

答案 0 :(得分:0)

您可以设置session variable以保留当前的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中。

答案 1 :(得分:0)

<强> 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>";

答案 2 :(得分:0)

为什么不使用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);
}