Основная проблема с Safari iOS заключается в том, что тег iframe
рассматривается как некий адаптивный элемент и будет действовать странным образом по отношению к его размеру и размерам элементов (загруженного HTML).Я тестировал iframe
с реальным контентом, поэтому он будет полностью прокручиваться.Используя тот же код, что и в вашем примере, Safari iOS показала iframe
с полной высотой содержимого содержимого html с определенными width
и height
.
Для решения проблемы вам необходимо включитьiframe
в block
контейнере, затем установите размер контейнера блока (width
и height
) и overflow
в auto
, и добавьте атрибут vendor в тело, чтобы разрешить iframe
прокручиваться правильно.Кроме того, не забудьте установить iframe как прокручиваемый.
Вы можете отказаться от реализации js
.
Я проверял это на всех браузерах настольных компьютеров, Safari iOS и Mobile Chrome.
Вы также можете проверить эту ссылку , когда обсуждается адаптивное содержимое внутри iframe.
Надеюсь, что это поможет.
Main html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<style>
body {
-webkit-overflow-scrolling: touch;
}
.iframeContainer, iframe {
width: 200px;
height: 200px;
}
.iframeContainer {
overflow: auto;
}
</style>
</head>
<body>
<section>
<p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p>
<div class="iframeContainer">
<iframe id="appSimulator" frameborder="0" src="scrolling.html" scrolling="yes"></iframe>
</div>
<p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p><p>hello</p>
</section>
</body>
</html>
Загружен iframe
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<style>
body {
background-color: black;
color: white;
}
</style>
</head>
<body>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
<p>hello</p>
</body>
</html>