【问题标题】:Remeber iFram SRC when refreshing parent page刷新父页面时记住 iFrame SRC
【发布时间】:2011-11-15 10:55:30
【问题描述】:

我正在构建一个 Intranet,并且正在学习网络语言。

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

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

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

有没有办法在刷新父页面时保留 iframe 的当前 SRC 是什么?

【问题讨论】:

  • 我们可以看看一些代码吗?此外,您没有提及如何/何时从“默认”更改 iframe 的 src

标签: php iframe refresh src


【解决方案1】:

你可以设置一个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 中。

【讨论】:

  • 我在想它可能是一个会话变量。我目前也在使用会话变量进行登录。我将如何将 url 设置为会话变量?也许我也可以将其添加到我的数据库中以记住用户上次访问的页面
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2013-03-20
      • 2011-04-28
      • 2018-02-23
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多