Обновление содержимого iframe при изменении ориентации

Итак, я настроил этот HTML-шаблон, который позволяет нам отображать анимированные HTML-объявления на iPad. По сути, он использует медиа-запросы для определения ширины устройства, а затем (с помощью css) отображает либо «портретный», либо «пейзажный» div. Книжный и альбомный разделы содержат фреймы, которые содержат рекламу для соответствующей ориентации.

Проблема, с которой я сталкиваюсь, заключается в том, что по какой-то причине реклама, сделанная с помощью Adobe Edge, не реанимируется при изменении ориентации устройства. То, что я надеюсь выполнить, - это принудительное обновление всей html-страницы или содержимого фреймов при изменении ориентации устройства, тем самым повторно анимируя объявление.

Мой код выглядит следующим образом:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="initial-scale=1, minimum-scale=1, maximum-scale=1" />
<link href="http://www.calgaryheralddigital.com/creative/ads/general/reset.css" rel="stylesheet" type="text/css" media="screen">
<link href="http://www.calgaryheralddigital.com/creative/ads/general/clickTags.css" rel="stylesheet" type="text/css" media="screen">

<!-- orientation handler -->
<style type="text/css" media="all and (min-width: 1px) and (max-width: 800px)">
    #portrait{ display:block; }
    #landscape{ display:none; }
</style>
<style type="text/css" media="all and (min-width: 800px) and (max-width: 1500px)">
    #portrait{ display:none; }
    #landscape{ display:block; }
</style>
</head>

<body>
<div id="landscape">
    <div style="z-index:1; position:relative;">
        <iframe src="http://www.calgaryheralddigital.com/creative/ads/client/filename.html" width="1024px" height="90px" frameborder="0">
        <p>Your browser does not support iframes.</p>
        </iframe>
    </div>
    <div id="bannerLand">
        <a href="%cINSERT URL HERE">
            <img src="http://www.calgaryheralddigital.com/creative/ads/general/trans.gif" width="1024" height="90"/>
        </a>
    </div>
</div>
<div id="portrait">
    <div style="z-index:1; position:relative;">
        <iframe src="http://www.calgaryheralddigital.com/creative/ads/client/filename.html" width="768px" height="90px" frameborder="0">
        <p>Your browser does not support iframes.</p>
        </iframe>
    </div>
    <div id="bannerPort">
        <a href="%cINSERT URL HERE">
            <img src="http://www.calgaryheralddigital.com/creative/ads/general/trans.gif" width="768" height="90"/>
        </a>
    </div>
</div>
</body>

</html>

Заранее спасибо за вашу помощь!


person astro shark    schedule 29.05.2012    source источник


Ответы (1)


На самом деле я смог решить эту проблему самостоятельно, используя код, который я извлек из другого вопроса о переполнении стека: Какой наилучший метод повторного рендеринга веб-страницы при изменении ориентации?

var supportsOrientationChange = "onorientationchange" in window,
    orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";

window.addEventListener(orientationEvent, function() {
    window.location.reload()
}, false);
person astro shark    schedule 03.07.2012