2011-11-09 13 views
8

Ebeveyn belgelerini iframe'den getirme konusunda bazı zarif çözümler gördüm - ör. this one. Bununla birlikte, onu işe yaratamam - ve bunun menkul kıymet sorunları (çapraz alan komut dosyası?) Nedeniyle mümkün olduğunu düşünmedim?Ana belgeyi iFrame'den alma

Soruma; Ebeveyn dokümanına iframe içinden erişebilir miyim - yoksa bu son yılları değiştirdi mi? Eğer buna erişebilseydim; parent.document veya window.parent.document yazarken iframe'in içeriğinden neden tanımlanamadığımı gösteren herhangi bir düşünce var mı?

+0

Pencere.top işlevi genellikle çalışır. – Salman

cevap

19

Etki alanlarının ile eşleşmesi koşuluyla, üst çerçeveye çerçevesinden erişmek hala mümkündür. , jsfiddle.net:

.210

Sen aracılığıyla ebeveyn erişebilirsiniz:

window.parent 
parent 
top   //If the parent is the top-level document 
window.top 

değişkenler parent ve top üzerine yazılabilir (genellikle amaçlanmamıştır). Daha güvenli olmak için window.parent'u kullanmak daha güvenlidir. Alternatif olarak, window'u document.defaultView ile değiştirebilirsiniz.

+0

Thx! Alanlar eşleşmiyor, bu açıkça bir sorun. Şimdi söylüyorsun, bunu bir süre önce okuduğumu biliyorum. Alanlar eşleşmediğinde ebeveyn dokümanına erişemezsiniz. Bu yüzden, çerçevelenen içerik farklı alan adlarında olduğunda sorunum çözülemiyor. Sağ? – stiank81

+0

Farklı etki alanlarında hala iletişim kurmak için bazı püf noktaları var. [Bu uzun makale] 'ye bir göz atın (http://softwareas.com/cross-domain-communication-with-iframes). Her iki sayfa aynı alanda, ancak farklı bir alt etki alanıyla sunulmuşsa, ['document.domain'] (https://developer.mozilla.org/en/DOM/document.domain) ayarlanması yardımcı olacaktır. Aksi takdirde, her iki web sitesinin de sahibiyseniz, ['window.postMessage'] öğesini uygulayabilirsiniz (https://developer.mozilla.org/en/DOM/window.postMessage). –

İlgili konular