2010-03-22 36 views
13

Bir web uygulaması üzerinde çalışıyorum ve ana pencerenin düzenleme öğeleri için bir form sunan bir pencereyi açmak için jQuery eklentisi Colorbox'ı kullanıyorum. Javascript ve jQuery'm hata ayıklamak için Firebug kullanıyorum ve jQuery konsolu komut satırını kullanarak Colorbox HTML formumda bir öğe seçemediğimi fark ettim. Örneğin:Bir iFrame'de Firebug ve jQuery seçicileri

$ date = $ ("# date"); Ben "teftiş elemanı" id = "Tarih" ve Kundakçı ile bir giriş elemanı olduğu halde, jQuery konsol komut satırından çalıştırmak

döner şey işaretçi iFrame eleman bulabilirsiniz. Firebug konsolunun iFrame'deki öğelere erişmesi için bir yol var mı?

Yardımlarınız için teşekkürler! iframe'in içeriğinde erişmek için

$('#date', $('iframe').get(0).contentDocument); 

, aynı yüklenmesi gerekir: Doug

Sen iframe kendi vardır, çünkü seçici için bir bağlam olarak iframe'in belgeyi geçmesi gerekiyor
+0

Açıklar, komut dosyasının sayfanın bir kısmı ne zaman çalışır, ancak konsolda çalışırken değil mi? –

+0

"var date = $ (" # date ") denediniz mi? – ant

+0

Javascript, Colorbox'ta çalışır, sadece Firebug konsolunda jQuery ile iFrame öğesindeki öğeleri değiştiremiyorum. –

cevap

16

DOM ağacını ayrılmış ana belge olarak etki alanı.


Sadece .contentDocument mülkiyet Chrome (ve FF) çalışır burada ayrıntılı ancak IE < 8. Sen .document kullanmak zorunda.

+0

Yaggo, Cevabınız için teşekkürler, biraz daha detaylandırır mısınız? IFrame'in içeriğine erişerek ne demek istediğimi "alamıyorum". Doug –

+0

sadece burada detaylandırılması için, '.contentDocument' özelliği, Chrome'da (ve FF'de) çalışır, ancak IE'de değil. .document 'kullanmalısınız. – Aliostad

21

Burada belgelenen cd yöntemle, aradığınız: http://getfirebug.com/wiki/index.php/Command_Line_API

İşte Facebook uygulamasını İç çerçeveye herhangi için iframe atlayarak otomatikleştirmek için kullandıkları bir yer işareti var. Kullanımınızı değiştirmek için yeterli bir örnek sağlamalıdır. with genellikle kötü bir uygulamadır, ancak bu Kundakçı konsola içine yazdıklarınızla yürütür, bu yüzden o taklit anlamıyla nasıl olduğunu

javascript:with(_FirebugCommandLine){cd($$(".canvas_iframe_util")[0].contentWindow)} 

Not.

Bunu çalıştırdıktan sonra, komut satırına yazdığınız her şey iframe bağlamında yürütülür.

+3

Bu dahidir. Bu snippet'i paylaştığınız için teşekkür ederiz. Facebook iframe uygulama geliştirmeyi çok daha kolay hale getirir. –

+4

Firebug konsolundaysanız, ihtiyacınız olan tek şey cd (iframedom.contentWindow) –

+0

Evet, ancak bir bookmarklet bunun için çok kullanışlı bir araçtır. – bcherry

İlgili konular