Рассказывая содержание iFrame об ориентации - PullRequest
1 голос
/ 17 января 2012

В настоящее время у меня есть веб-сайт с iFrame, который предназначен для планшетного устройства (например, iPad). Я могу определить ориентацию в родительском элементе, чтобы изменить ширину и высоту самого iFrame, но я не могу получить страницу iFrame для определения ориентации устройства при изменении.

Я знаю, что если я загружаю реальную страницу из самого iFrame в Safari Mobile, не находясь в iFrame, он обнаруживает изменения и поворачивается в соответствии с ориентацией в это время. Если я загружаю страницу в альбомной ориентации, когда она находится в iFrame, она загружает содержимое в альбомной ориентации, и наоборот, в вертикальной ориентации. Кажется, что он не хочет постоянно определять ориентацию после того, как загрузился в iFrame, только при начальной загрузке.

Есть ли способ сообщить iFrame, что ориентация каким-то образом изменилась? Я использовал этот код, но безуспешно:

window.addEventListener("orientationchange", function(){
                var iframe = document.getElementById("youriframe").contentWindow;
                iframe.postMessage({
                    orientation: window.orientation
                }, 'http://the.domain.of.the.iframe.com');
}, false)

Что усложняет то, что я не могу редактировать содержимое iFrame, так как оно не мое! Код ниже - это то, что вы должны ввести в него!

window.addEventListener("message", function(e){
            var newOrientationValue = e.data.orientation;
            alert(newOrientationValue); // <--- DO your own logic HERE
}, false)

Пожалуйста, помогите, я уже несколько дней ломаю голову над этим! Надеюсь, что все имеет смысл.

...