2011-02-28 20 views
7

Bir javascript işlevi getData() içeren iframe içinde bir tam html açılışı var. Şimdi getData() bu çerçevenin dışından nasıl çağrılacağımı bilmiyorum.Ayrıca harici bir javascript dosyasından mı? Eğer iframe ve kullandığı ana gövdesini isim bu durumlardabir iframe dışından javascript işlevi çağrısı

+0

re. Harici dosyadan arama yapın, aşağıdaki yanıtta [2] numaralı güncellemeye bakın.Yanıtlayanlar için – johnhunter

cevap

10

Pencere camı nesnesine window.frames özelliğinden bir başvuru alabilirsiniz. https://developer.mozilla.org/en/DOM/window.frames

GÜNCELLEME bakınız:

Sen window[framename] ile adlandırılmış iframe'inin küresel bağlamını erişebilirler. Örneğin, iframe'in yüklü olduğundan emin olmanıza gerek olmasına rağmen.

$("iframe").contents() 

Bütün bunlar

same domain içinde barındırılan çerçeveyi üstleniyor: iframe DOM erişmek istiyorsanız

jQuery size içeriği yöntemini kullanabilirsiniz.

GÜNCELLEME [2]: harici js dosyasından getData işlevi çağırmak mümkün olup olmadığını

sordun. Cevap evet (eğer seni doğru anlarsam). Bir javascript çağıran bir neccessity olabileceğini

var dataFrame = window.data; 

// when the frame has loaded then call getData() 
dataFrame.onload = function() { 
    var myData = dataFrame.getData(); 
    // do something with myData.. 
} 

Umut bu belirli durumda sorunuzu :)

0

/çerçeve başlattı ve daha sonra JS her şey Nesne olduğunu parent.objectname kullanmak ve()

hızlı googling led getData çağırmak mümkün olmalıdır bana ->http://www.esqsoft.com/javascript_examples/iframe_talks_to_parent/

+0

Thnx .. ama benim asıl meselem, onu harici bir javascript dosyasından arayabilir miyim bilmek. –

+0

Evet, çerçevenizin işlevlerinizi tanımlayan harici bir js dosyası yüklemesini sağlayabilirsiniz. Ana sayfanın 'getData' öğesini çağırmadan önce çerçevenin harici komut dosyasını yüklediğinden emin olmak istersiniz. – johnhunter

0

cevap verir: Eğer varsa getdata.js dosyada Sonra

<html> 
<head> 
    <meta charset="utf-8"> 
    <title>parent page</title> 
</head> 
<body> 

    <iframe src="data.html" name="data"></iframe> 
    <script src="getdata.js"></script> 

</body> 
</html> 

: İşte bir örnek Ana belgeden bir iframe içinde işlev görür ve bunun tersi; iframe'den ana belgede bir javascript işlevi çağırılıyor. Örneğin,

Örneğin; ana belgede attrib iFrameId id id özniteliğine sahip bir iframe vardır ve iframe belgesinde ‘functionInIframe() function işlevi tanımlanmıştır. Aşağıdaki kod, iframe işlevini üst belgeden kendisi olarak çağırabilir.

document.getElementById('iFrameId').contentWindow.functionInIframe(); 

Ve aşağıdaki kod iframe kendisinden üst belgesi (functionInParent()) tanımlanan işlevi çağırabilir.

parent.functionInParent(); 

Bu şekilde javascript, üst belge ile iframe arasında etkileşime girebilir. Bu, original post'dır.