Esta é uma solução bastante hacky, mas é pelo menos alguma coisa (?). A idéia é usar uma transformação CSS para girar o conteúdo da sua página para o modo quase retrato. Aqui está o código JavaScript (expresso em jQuery) para você começar:
$(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);
});
O código espera que todo o conteúdo da sua página fique dentro de uma div, dentro do elemento body. Ele gira essa div 90 graus no modo paisagem - de volta ao retrato.
Deixado como um exercício para o leitor: o div gira em torno de seu ponto central; portanto, sua posição provavelmente precisará ser ajustada, a menos que esteja perfeitamente quadrado.
Além disso, há um problema visual desagradável. Quando você altera a orientação, o Safari gira lentamente, e a div de nível superior se ajusta a 90 graus diferentes. Para ainda mais diversão, adicione
body > div { -webkit-transition: all 1s ease-in-out; }
para o seu CSS. Quando o dispositivo gira, o Safari gira e o conteúdo da sua página. Sedutor!