Esta es una solución bastante hacky, pero al menos es algo (?). La idea es usar una transformación CSS para rotar el contenido de su página al modo cuasi-retrato. Aquí está el código JavaScript (expresado en jQuery) para comenzar:
$(document).ready(function () {
function reorient(e) {
var portrait = (window.orientation % 180 == 0);
$("body > div").css("-webkit-transform", !portrait ? "rotate(-90deg)" : "");
}
window.onorientationchange = reorient;
window.setTimeout(reorient, 0);
});
El código espera que todo el contenido de su página viva dentro de un div justo dentro del elemento del cuerpo. Gira ese div 90 grados en modo horizontal, de vuelta al retrato.
Izquierda como ejercicio para el lector: el div gira alrededor de su punto central, por lo que es probable que sea necesario ajustar su posición a menos que sea perfectamente cuadrada.
Además, hay un problema visual poco atractivo. Cuando cambia la orientación, Safari gira lentamente, luego el div de nivel superior se ajusta a 90 grados diferentes. Para aún más diversión, agregue
body > div { -webkit-transition: all 1s ease-in-out; }
a tu CSS. Cuando el dispositivo gira, Safari lo hace, luego lo hace el contenido de su página. Seductor!