2010-06-30 29 views
7

en Böyle bir şey bulunduğunu varsayalım:İç sayfadan ana iframe öğesi kimliğini bilmeden nasıl alabilirim?

<html> 
... 
    <div> 
     <iframe src="test.html" hash="r4d5f7"></iframe> 
     <iframe src="test.html" hash="8f7x97"></iframe> 
     <iframe src="test.html" hash="gg4v5e"></iframe> 
     <iframe src="test.html" hash="e54f87"></iframe> 
    </div> 
... 
</html> 

test.html iki sayfa Güvenlik nedeniyle, sayı ve iframe sipariş için aynı alanda bulunan boş sayfa, özel hash özellik her zaman farklı bir değere sahiptir olduğu öğeler rastgele.

Soruma şudur: İç sayfadan (test.html) Javascript kullanarak uygun iframe öğesine ulaşmanın bir yolu var mı? Diyelim ki, üçüncü iframe'in sayfasındayım ve iframe elementine ve alert() hash değerine (bu durumda "gg4v5e") ulaşmam gerekiyor. Daha spesifik olmak için. Firefox'un Firebug aşina değilseniz, bu gibi bu durumu görselleştiren:

<html> 
... 
    <div> 
     <iframe src="test.html" hash="r4d5f7"> 
      <html> 
       ... 
      </html> 
     </iframe> 
     <iframe src="test.html" hash="8f7x97"> 
      <html> 
       ... 
      </html> 
     </iframe> 
     <iframe src="test.html" hash="gg4v5e"> 
      <html> 
       ... 
      </html> 
     </iframe> 
     <iframe src="test.html" hash="e54f87"> 
      <html> 
       ... 
      </html> 
     </iframe> 
    </div> 
... 
</html> 

() ana elemanı almak için "bir şeyler" aramak için mümkün mü ben <html> elemanda benim Javascript birlikteyken iç sayfa

cevap

16

Elbette var. Bu kod FF ve IE6, Opera, Chrome çalışır aynı sunucu, protokol ve port gereksinimi Chrome için ise

 function getHash() { 
      var ifs = window.top.document.getElementsByTagName("iframe"); 
      for(var i = 0, len = ifs.length; i < len; i++) { 
       var f = ifs[i]; 
       var fDoc = f.contentDocument || f.contentWindow.document; 
       if(fDoc === document) { 
       alert(f.getAttribute("hash")); 
       } 
      } 
     } 
+0

(bir web sunucusu ve aynı etki alanı protokolü ve limana gelen iki dosyayı da gerektirir) – naikus

İlgili konular