Przykład strony źródłowej:iframe kwestie wysokości na iOS (Mobile Safari)
<!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>
Problem polega na tym, że height
z 200px
z inline stylu IFRAMES jest ignorowany na telefon Safari:
Chciałbym również dynamicznie zmieniać wysokość IFrame poprzez JavaScript JavaScript, który nie działa w ogóle z następującym kodem:
document.getElementsByTagName('iframe')[0].style.height = "100px"
Wartość stylu height
została poprawnie zmieniona zgodnie z narzędziami programisty, ale jest po prostu ignorowana, ponieważ faktycznie wyrenderowana wysokość ramki IFrame się nie zmienia.
To tylko wydaje się być problemem w mobilnym Safari i działa zgodnie z oczekiwaniami na najnowszych wersjach pulpicie Safari, Firefox, Chrome, Androidy Webview itp
Testpage: http://devpublic.blob.core.windows.net/scriptstest/index.html
Ps .: Przetestowałem to na różnych urządzeniach w przeglądarce, a także zrobiłem tam zrzuty ekranu, ponieważ nie mam pod ręką prawdziwej usługi iDevice.
[Rozwiązanie] (http://stackoverflow.com/a/23083463/1273551) we wspomnianym wątku rozwiązało jedną część mojego problemu, która wystąpiła podczas obracania urządzenia. Ponieważ faktycznie mam dostęp do źródeł zawartości ramki IFrame, byłem w stanie rozwiązać moje problemy z wysokością poprzez dynamiczne ustawienie wysokości ciała IFrame na taką samą wysokość, jaką próbowałem ustawić na samej ramce IFrame. – suamikim