我正在构建一个内部网,我正在学习网络语言。
我有一个基本的html / php页面,其中包含一个iFrame,我的大部分内容都已加载到其中。
我还有一个登录框,它是主页面中的弹出模式。 当您填写此弹出窗口并点击登录时,它会刷新主页面,以便它知道您已登录,并可以显示您的姓名等。
但是,这意味着iframe SRC也会重置为默认值。
刷新父页面时,有没有办法保留iframe当前的SRC?
答案 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);
}