Я знаю, iframes, что за ПИТА!
Anyhoos, они работают для моих нужд, которые являются просто основной рамкой дисплея и скрытой боковой рамкой, содержащей приложения, которые можно вызывать в любое время.
Вот код:
<html>
<head>
<!--Main Style-->
<link rel="stylesheet" type="text/css" href="site/css/main.css" />
<!--JQuery-->
<script type="text/javascript" src="site/scripts/jquery.js"></script>
<!--BG Colour, Hide Scrollbar and Margins-->
<body bgcolor="cc6666" style="overflow: hidden" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<!--Page Table, Contains Everything To Keep From Cutting Off iFrame-->
<table height="100%" width="100%" cellspacing="0" cellpadding="0" border="0">
<!--iFrame Cell-->
<td height="100%">
<!--Main Frame-->
<!--Main frame loads last visited page based on user, unless not logged in then loads welcome page-->
<?php
if(isset($_SESSION['last_visited'])) {
print('<iframe name="frame" src="'.$_SESSION['last_visited'].'" width="100%" height="100%" frameborder="0" style="bgcolor:white;"></iframe>');
}
else {
print('<iframe name="frame" src="site/welcome.php" width="100%" height="100%" frameborder="0"></iframe>');
}
?>
<!--App Frame-->
<!--App frame will be initiated if no user is logged in, or if a user with apps turned on is logged in-->
<?php
if(isset($_SESSION['SESS_APPS'])) {
if($_SESSION['SESS_APPS'] == '1') {
print('<iframe id="app_frame" src="site/apps.php" width="0%" height="100%" frameborder="0" scrolling="no"></iframe>');
}
}
else {
print('<iframe id="app_frame" src="site/apps.php" width="0%" height="100%" frameborder="0" scrolling="no"></iframe>');
}
?>
<!--End iFrame Cell-->
</td>
<!--End Page Table-->
</table>
</body>
Надеюсь, это не так уж и плохо, но ошибка определенно возникает в нижней части, где у вас есть два iframes, напечатанных с использованием php. Если я полностью уберу «Фрейм приложения», то страница будет идеальной, как я тестировал в IE, но если она печатает iframe, то по какой-то причине она печатает ее ниже основного фрейма, а не вправо.
Это происходит только в Chrome и Safari, и предполагается, что это должен быть WebKit, поскольку Firefox и IE печатают кадры бок о бок, как и следовало ожидать.
Как я уже понял, html работает на основе слева направо, если только не происходит какой-то разрыв, в котором он падает до следующего ряда.
Единственная причина, по которой я могу думать, что в данном случае это не то, что происходит, заключается в том, что основная ячейка имеет ширину 100%, что означает, что сглаживание справа от нее помещается в строку ниже.
Может кто-нибудь предложить способ, которым я, возможно, могу отразить рендеринг из IE для Chrome и Safari?
ПРИМЕЧАНИЕ: я не думаю, что это имеет какое-либо отношение к странице так далеко внизу, но вся страница представляет собой одну таблицу, разбитую на две строки. верхняя строка представляет собой таблицу, управляющую макетом моего заголовка. Вторая строка - это другая таблица, управляющая макетом фрейма.
Это связано с тем, что он позволяет странице настраиваться в зависимости от разрешения пользователя и, соответственно, размера окна.