В настоящее время у меня есть веб-сайт с 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)
Пожалуйста, помогите, я уже несколько дней ломаю голову над этим!
Надеюсь, что все имеет смысл.