Я только что задал вопрос о том, почему определенный код js не будет работать в Chrome и Safari на 100%, но после дальнейшего устранения неполадок я думаю, что обнаружил, что это вопрос, который я должен опубликовать.
У меня есть страница, на которой есть форма. Целью этой формы является iframe на той же странице. iframe является динамическим и основан на php.
Это нижняя часть моего содержимого php iframe:
<body onload="parent.resize_iframe(document.body.scrollHeight)">
<?php echo $display_table; ?>
Как видите, я вызываю функцию для изменения высоты iframe на главной странице (родительской странице).
Это отлично работает, и на самом деле он изменяется, НО в Chrome и Safari изменение размера устанавливает высоту «выше», чем должна быть. Поэтому, если высота составляет 500 пикселей, Chrome и Safari устанавливают ее примерно на 2000 пикселей, что является максимальной высотой документа iframe.
Почему это? Одна мысль может заключаться в том, что тело не полностью загружено до того, как scrollHeight будет отправлен в функцию изменения размера, возможно?
Есть ли способ заставить его ждать, пока документ полностью не загрузится?
Одна вещь, которая меня смущает, это то, что когда я нажимаю ссылку на главной странице, а затем возвращаюсь, изменение размера страницы работает хорошо и установлено на 500 пикселей, как и должно быть даже в Chrome/Safari. Но именно тогда я нажимаю «назад» в браузере.
Хм, я действительно не понимаю этого, поэтому, пожалуйста, помогите мне здесь.
Спасибо
resize_iframe
? - person Marcel Korpel   schedule 03.10.2010<body>
. Возможно, вы увидите, что лучше вложить<div>
внутрь<body>
и манипулировать им вместо этого. - person Pointy   schedule 03.10.2010