2011-11-28 17 views

cevap

17

Bunu deneyin. IFrame'inizin kimliğinin "targetFrame" olduğunu ve aramak istediğiniz nesnenin targetObject olduğunu ve aynı etki alanı olduğunu da kabul ediyorum. onlar aynı etki ise ben iframe src sen kısıtlamaları

çünkü aynı-içinde

olurdu ebeveyn olarak aynı kökenli/etki alanında değilse mümkün .:

document.getElementById('targetFrame').contentWindow.targetObject 
+4

, sen –

4

olmadığını düşünüyorum kökenli ilkeye (güvenlik politikası) https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript

politika bank.com bir iframe ile bir html sayfasını oluşturmak eğer örneğin CSRF jeton ve çerçeve içinde saklanan diğer özel veriler gibi özel verilerine erişen engellemek için planlanmıştır sonra insanlar bankaya.com giriş yaptıklarında sitenize girer iframe'de özel veriler saklanacaktır, bu nedenle aynı menşeli politika farklı kaynakların iframe'ler aracılığıyla birbirinin verilerine erişmesini engelleyecektir.

2

Ayrıca alt öğenin pencere nesnesini kullanarak alt öğenin nesnelerine de erişebilirsiniz.

alert(window.frames[0].variable_name); 

İlk iFrame'den, variable_name değişkeninin değerini gösterir. Çerçeveler listesi indeksi, çerçeveler arası değişkenlerin değerlerine erişmek için kullanılabilir.

+0

ES6/ES2015 güncelleştirme nesne window' çocuğu 'erişmek için aynı etki alanında olması gerektiğini lütfen unutmayın: bu sadece çalışır variable_name' var değişken_adı' olarak ilan edilmiştir 'eğer;' değil variable_name let 'olarak ; '. [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let): "'let', var'' farklı olarak, küresel nesne üzerinde bir özellik yaratmamaktadır ." – cxw

İlgili konular