2011-01-25 23 views
10

Bu yüzden içinde bir iframe bulunan bir .jsp sayfam var. Bu iframe'in içeriği ayrı bir alanda barındırılmaktadır. Bir mobil cihazda, yönelim değişikliğini algılamak ve içeriğin boyutlarını buna göre değiştirmek için bu iframe'i arıyorum.Yöneltme değişimini alan-alan içi iframe içinden değiştirme algılaması

Yönlendirme değişikliğini algılayacak bu iframe içinde depolanan içeriğe bir olay dinleyicisi eklemenin bir yolu var mı?

Bu içerik bir iframe içinde değilse ve doğrudan bunun yerine erişilirse, şöyle bir çağrı açılır: window.addEventListener ('orientationchange', FunctionToBeCalled, false); , bir yönelim değişikliğini başarıyla yakalar ve uygun işlevi çağırır. Ancak iframe içinde çalışmak için bunu göremiyorum. Parent.addEventListener, parent.window.addEventListener, top.addEventListener, vb.'yi denedim, ancak boşuna.

Okuduğumdan beri bu, aradaki alanlar arası bir çağrı olduğu için sesler geliyor, benim için çok sınırlı ana işlevlere sahibim, başarısız olmaya mahkum muyum?

Herhangi bir yardım büyük memnuniyetle karşılanacaktır. Teşekkürler!

cevap

13

Üst pencerenin koduna sahipseniz, bunu çözmek için çapraz belge dağınıklıkları kullanabilirsiniz. Yönlendirmeyi ana pencereden iframe'e gönderebilirsiniz. Bu, çapraz etki senaryosunda da çalışmalıdır. Bunu iphone 4.3 ve android 2.2 üzerinde test ettim. ebeveyn penceresinde

: yönü değişikliklerine ilişkin kayıt ve iframe içinde iframe

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

transfer: Daha fazla ayrıntı için ebeveynden oryantasyon değişikliklere

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

Kontrolü bunu abone : http://html5demos.com/postmessage2

İlgili konular