Ví dụ mã nguồn trang web:IFrame vấn đề chiều cao trên iOS (Safari di động)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Page</title>
</head>
<body>
<div class="main" style="height: 100%;">
<div class="header" style="height: 100px; background-color: green;"></div>
<iframe src="http://www.wikipedia.com"
style="height: 200px; width: 100%; border: none;"></iframe>
<div class="footer" style="height: 100px; background-color: green;"></div>
</div>
</body>
</html>
Vấn đề là, rằng height
của 200px
từ phong cách inline IFrame bị bỏ qua trên safari di động:
Ngoài ra tôi muốn thay đổi chiều cao của IFrame theo cách động thông qua JavaScript vani mà không hoạt động chút nào với mã sau:
document.getElementsByTagName('iframe')[0].style.height = "100px"
Giá trị của kiểu height
được thay đổi chính xác theo công cụ dành cho nhà phát triển nhưng nó chỉ bị bỏ qua vì chiều cao thực sự được hiển thị của IFrame không thay đổi.
này dường như chỉ là một vấn đề trong điện thoại di động Safari và đang làm việc như mong đợi trên các phiên bản mới nhất của máy tính để bàn Safari, Firefox, Chrome, Androids WebView, vv
Testpage: http://devpublic.blob.core.windows.net/scriptstest/index.html
PS .: Tôi đã thử nghiệm điều này với nhiều thiết bị khác nhau trên trình duyệt và cũng chụp các ảnh chụp màn hình ở đó vì tôi không có iDevice thực tế trong tầm tay.
[Giải pháp] (http://stackoverflow.com/a/23083463/1273551) trong chuỗi đã đề cập đã giải quyết một phần vấn đề của tôi đã xảy ra khi xoay thiết bị. Vì tôi thực sự có quyền truy cập vào các nguồn nội dung IFrame, tôi đã có thể giải quyết các vấn đề về chiều cao của mình bằng cách tự động đặt chiều cao của nội dung IFrame với cùng chiều cao mà tôi đã cố gắng đặt trên chính IFrame. – suamikim