2010-11-09 13 views

cevap

0

top.frames['my_frame'].myFunc(); 
+0

bu jquery değildir ..... – fgfgfgghjh

+2

Bu javascript, ihtiyacınız yok jquery –

0

Bunu kimliği

document.getElementById(iframeId).contentDocument 

kullanarak iFrame seçebilir ama çocuk iFrame sürece farklı bir etki

14

den, özellikle onun JavaScript, erişebilir emin değilim çerçeveli sayfa aynı etki alanında (veya alt etki alanında ve document.domain ayarlıyor), çerçeve öğesinin contentWindow özelliğine erişmeniz gerekir. Örneğin:

$("#myFrame")[0].contentWindow.myFunction(); 

// or, if jQuery hasn't made you lazy 
document.getElementById("myFrame").contentWindow.myFunction(); 

Çoğu tarayıcı da contentDocument destekleyen, ancak Internet Explorer değildir. Çerçeveli sayfanız farklı bir alandaysa, Erişim Engellendi hatası alırsınız. ;

+0

Eğer tembel olmayan eşdeğerde * gerçekten * olması gerektiğini öneririm (document.getElementById ("myFrame"). Length == 0) {document.getElementById (" myFrame ") contentWindow.myFunction (.); }; ' –

+0

@Jeromy: nope, her iki sürümde aynı sayfada" # myFrame "bulunmadıysa aynı hatayı atardı. –

+0

Ne demek istediğimi anladım ... '$ (" # myFrame ") [0]', 'undefined' iadesi döndürmez, elbette ki hiçbir yöntem yoktur. Ben "$ (" # myFrame ") ... 'yı düşünüyordum, ama bu işe yaramıyor. Beni doğru yola koyduğun için teşekkürler. –

3
$("iframe").each(function() 
{ 
    $(this).one("load", function() 
    { 
     $(this)[0].contentWindow.myFunction(); 
    }); 
}); 

O yüklenen iframe gereklidir)

1

bir profesyonel gibi yapın:

$("#myFrame").prop('contentWindow').abc(); 
0

bir profesyonel gibi yapın:

$("#myFrame").prop('contentWindow').abc(); 
burada
+0

Bir pro gibi çalışmayı denedim ... localhost üzerinde çalışır ancak bir üretim sunucusunda değil - Error = TypeError: $ (...). Prop (...) undefined –

+0

aynı kesin localhost ve üretim hem de kurulum? – hackdotslashdotkill

İlgili konular