如何解决如何在PHP设置中将HTML框架集/框架转换为iframe-2020年方案和解决方案
此处已阅读有关此主题的许多专家建议。不过,有时候这很笼统,没有结合使用不的建议来使用Bootstrap或FlexBox的解决方案来解决这个难题。
对于那些拥有带有多个框架的“历史” HTML框架集的所有人,我想向您展示如何从原始PHP代码文件进行此转换。非常感谢我个人能够在堆栈溢出时收集到的所有专业建议,我想在这里退还一些东西。
基本布局结构如下:
+---------------------------------------------------------+
| (1) |
+---------------------------------------------------------+
| (2) |
+---------------------------------------------------------+
| (3) | frameBody | (4) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+---------------------------------------------------------+
| (5) |
+---------------------------------------------------------+
传奇:
(1)-headerTitle; (2)-frameMenu; (3)-userMenu; (4)-PatientMenu; (5)-footerTitle。
从login.PHP
成功登录后,我被转发到site.PHP
,后者负责整个网站。在此文件中,管理从条件切换到条件,从而切换到相应的其他PHP文件的所有条件。
site.PHP
不过也照顾网站的主要布局,这里采用的是旧的frameset / frame / noframes方式(请原谅代码示例的冗长性,但是我想向您展示如何做到这一点)简短且结构合理的iframe解决方案可以是)
<?PHP
// Lots of deFinitions and introductory stuff,not relevant here
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<Meta http-equiv="content-type" content="text/html; charset=<?= strtolower($CHARSET) ?>" />
<Meta name="author" content="whoever" />
<Meta name="date" content="<?= date('r',filectime($_SERVER['SCRIPT_FILENAME'])) ?>" />
<title><?= $sCompanyName ?></title>
</head>
<frameset name="alles" cols="20,*,20" framespacing="0" frameborder="0" border="0" />
<frameset rows="20,50,120,40,20" framespacing="0" frameborder="0" border="0" />
<frame name="headerTitle" src="frameHeader.PHP" scrolling="no" noresize="noresize" />
<frame name="frameMenu" src="frameMenu.PHP" scrolling="no" noresize="noresize" />
<?PHP
if (isset($_REQUEST['sBody']) && $_REQUEST['sBody'] == 'login')
echo '<frame name="frameBody" src="login.PHP' . $sLanguageString . '">';
else {
?>
<frameset name="Frame1" cols="225,1,225" framespacing="0" frameborder="0" border="0">
<frame name="userMenu" id="userMenu" src="userMenu.PHP" />
<frame name="frameBody" src="<?= $sBody . (strlen($sURLParameterString) > 1 ? $sURLParameterString : '') ?>" />
<frame name="patientMenu" id="patientMenu" src="patientMenu.PHP"/>
</frameset>
<frame name="footerTitle" src="frameFooter.PHP" scrolling="no" noresize="noresize" />
</frameset>
<?PHP
}
?>
<noframes>
<body>
<?PHP
setSysMsg($oSysMsg->getExpression('general','noFrameSupport','This site is based on frames. But your browser doesn\'t support frames.<br />Your should choose another internet browser.'));
echo getLastSysMsg();
?>
</body>
</noframes>
</frameset>
</html>
现在容易进行转换的障碍是什么?
解决方法
它们都只参考我的工作方式(除了您可以在我的个人资料中了解的其他专业技能之外,我还开发了大型文档和数据分析套件[WAMP,LAMP,MAMP],用于处理特殊类型的医学文档),但是如果您发现自己处于类似的及时状态,则这种情况可能与您的心态相似:
障碍1: 也可以完成用于实现网格(如Bootstrap或Flexbox)的现成解决方案,但是如果您希望自己的方式具有尺寸,形状和颜色,使用其CSS和JS文件通常需要进行大量的个性化修改。>
障碍2: 我个人更喜欢在易于理解的小型环境中进行实验,然后再将解决方案嵌入到更大的结构中,例如Bootstrap和Flexbox(可能还有其他)。
障碍3: 当我迫切需要完成数据分析和评估时,我根本没有时间坐在屏幕前几个小时来检查一些布局内容。
因此,在我的本地主机上试用WampServer之后,我发现了以下解决方案:
<?php
// Same lots of definitions and introductory stuff,again not relevant here
?>
<!DOCTYPE html>
<html lang="whatever">
<head>
<meta http-equiv="content-type" content="text/html; charset=<?= strtolower($CHARSET) ?>" />
<meta name="date" content="<?= date('r',filectime($_SERVER['SCRIPT_FILENAME'])) ?>" />
<title><?= $sCompanyName ?></title>
</head>
<div>
<iframe style="top:0px; width:100%; height:40px; border:2px red; background-color:grey; display:block; position:fixed;" id="headerTitle" name="headerTitle" scrolling="no" frameborder="1" marginheight="0px" marginwidth="0px" src="frameHeader.php" /></iframe>
</div>
<div>
<iframe style="top:40px; width:100%; height:120px; border:2px red; background-color:grey; display:block; position:fixed;" id="frameMenu" name="frameMenu" scrolling="no" frameborder="1" marginheight="0px" marginwidth="0px" src="frameMenu.php" /></iframe>
</div>
<?php
if (isset($_REQUEST['sBody']) && $_REQUEST['sBody'] == 'login')
echo '<iframe name="frameBody" src="login.php' . $sLanguageString . '">';
else {
?>
<div style="float:left;">
<iframe style="top:160px; width:225px; height:100%; border:2px blue; background-color:grey; display:inline-block; position:fixed;" id="userMenu" name="userMenu" scrolling="yes" frameborder="1" marginheight="0px" marginwidth="0px" src="userMenu.php" /></iframe>
</div>
<div>
<iframe style="top:160px; left:225px; width:100%; height:100%; border:2px blue; background-color:lightgrey; display:inline-block; position:fixed;" id="frameBody" name="frameBody" scrolling="yes" frameborder="1" marginheight="0px" marginwidth="0px" src="<?= $sBody . (strlen($sURLParameterString) > 1 ? $sURLParameterString : '') ?>" allowfullscreen /></iframe>
</div>
<div style="float:right;">
<iframe style="top:160px; right:0px; width:225px; height:100%; border:2px blue; background-color:grey; display:inline-block; position:fixed;" id="patientMenu" name="patientMenu" scrolling="yes" frameborder="1" marginheight="0px" marginwidth="0px" src="patientMenu.php" /></iframe>
</div>
<div>
<iframe style="bottom:0px; width:100%; height:40px; border:2px red; background-color:grey; display:block; position:fixed;" id="footerTitle" name="footerTitle" scrolling="no" frameborder="1" marginheight="0px" marginwidth="0px" src="frameFooter - Kopie.php" /></iframe>
</div>
<?php
}
?>
</html>
请注意,当然,将style="whatever"
语句转换为外部CSS文件是一个很好的步骤,但这不是必需的步骤,但这在这里不必告诉我我的意思。
重要的是,不要将name="something"
语句从帧更改为iframe,因为引用例如用frameBody
引用上述代码的菜单链接是必需的(请参阅那里):
[... preceding code ...]
<li><a target="frameBody" href="dothis.php">Do this</a></li>
<li><a target="frameBody" href="dothat.php">Do that</a></li>
<li><a target="frameBody" href="dosomethingcompletelydifferent.php">Do something completely different</a></li>
[... further code ...]
allowfullscreen
仅是可选元素,以防应使用适当的javascript代码(此处未提供)将这些iframe之一全屏显示。
最后,<!DOCTYPE ...>
和<html ...>
的更改对应于能够使用HTML 5而不是必须引用DTD(文档类型定义)的旧HTML 4声明。 )。
我希望这段代码能以一种通用的方式帮助从HTML框架集扎根到HTML iframe,然后再迈向无框架解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。