Почему этот код JS не работает в Chrome и Safari? - PullRequest
3 голосов
/ 03 октября 2010

У меня есть iframe в моем index.html, и этот iframe является динамическим.

в моем index.html У меня есть форма, которая при отправке показывает результаты внутри iframe.

Проблема в том, что высота Iframes также должна быть динамичной, чтобы сайт выглядел "чистым".

Итак, на странице iframes php у меня есть этот код:

<body onload="parent.resize_iframe(document.body.scrollHeight)">

И в index.html (который в данном случае является родителем) у меня есть эта функция:

function resize_iframe(new_height){
    byId('iframe001').style.height=parseInt(new_height) + 20 + 'px';
}

Проблема здесь не в функции, а в том, что Safari и Chrome считают scrollHeight чем-то большим, чем есть.

Я попытался предупредить scrollHeight, и nr всегда составляет около 2000px в Chrome и Safari, но в других браузерах он динамический, как и должно быть (500, 300, 800 и т. Д.) ...

Есть идеи?

UPDATE:

Я заметил, что когда я щелкаю ссылку в индексе, а затем нажимаю кнопку возврата браузера, iframe ДЕЛАЕТ правильное изменение размера в SAFARI и CHROME.

Но я должен вернуться в браузер, чтобы он заработал ...

СМОТРИТЕ ЭТОТ ВОПРОС ДЛЯ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ: Не могу понять, почему Chrome / Safari не может получить ScrollHeight прямо здесь

Ответы [ 2 ]

0 голосов
/ 17 декабря 2010

Иногда JavaScript не работает должным образом, когда на странице есть ошибки проверки.

Сначала попробуйте проверить вашу разметку (HTML).

Если проверка не работает, попробуйте использовать jQuery.

jQuery совместим с разными браузерами; вы должны получить одинаковый результат в каждом браузере.

0 голосов
/ 22 октября 2010

Я не уверен, но, тем не менее, я хочу сказать то, что хочу сказать. Safari и Chrome являются браузерами, основанными на webkit, так что это нормальное поведение. Поэтому я предполагаю, что они вычисляют высоту, добавляя отступы и поля к нормальной высоте. пожалуйста, Google это "WebKit рассчитанный стиль"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...