нормально, обычно это будет легко, но по визуальным причинам я заставляю свой iframe иметь такую же высоту, как и содержимое, которое он содержит.Это дает мне только одну полосу прокрутки, полосу прокрутки в родительском окне.Документ iframe никогда не прокручивается.Проблема возникает, когда я пытаюсь центрировать div внутри iframe.Когда страница прокручивается на пару страниц вниз, я не могу получить точное значение прокрутки.$ (window) .scrollTop () всегда равно нулю.Если я использую parent.document.documentElement.scrollTop вместо $ (window) .scrollTop (), я получаю значение, но оно полностью готово к обеду.Например, если высота iframe - 2011, и я прокручиваю до нижней части iframe, и я запрашиваю parent.document.documentElement.scrollTop, я получаю возвращенное значение 567Мой размер экрана 1200
Одинаковые результаты во всех браузерах.Протестировано последнее IE, FF, Opera, Chrome.
Для имитации
in outerdoc.htm I have
<iframe id="myFrame" src="doc1.htm"></iframe>
doc1.htm:
<html>
<head>
<title>my title</title>
</head>
<body>
<p> 10 pages of content near the bottom <div onclick="CenterDiv($('#myDiv'))">show div</div></P>
<div id="myDiv"></div>
<script type="text/javascript" language="javascript">
$(document).ready(function()
{
$('#myFrame', top.document).height($(document).height()); //sets height of frame to document within
});
function CenterDiv(item)
{
var mtop = ($(window).height() / 2 - item.height() / 2) + $(top.window).scrollTop());
item.css('top', mtop < 0 ? 0 : mtop );
}
</script>
</body>
</html>