2009-09-21 46 views
1

希望有人能夠協助,但我需要從嵌套3和4級別的父表單中訪問表單和iframe中的值。如何訪問嵌套在DOM中的項目值?

基本上,樹狀分層結構(DOM)似乎是如下:

<form name="formname" ....> 
    <iframe id="refframe"> 
    <form name="formname" ...>    ==> Level 3 
     <iframe id="iframe1">     ==> Level 4 

現在我有3級(說myvalue的)一個項目的值,我想從頂級訪問(父級 - 級別1)

使用JavaScript,我怎樣才能從父級頂級訪問此項目「myValue」?

這同樣與第四級訪問的項,的iframe1

任何幫助的IFRAME ID內/實例,將不勝感激。

謝謝。

基礎上,我仍然不知道如何獲取信息,但如果我有以下的HTML代碼上面:

<div class="tabs0"> 

<iframe id="refframe" width="1210px" height="584px" frameborder="0" align="left"

overflow="auto" src="http://www.abc.com" home="" name="Site1"> 
</iframe> 

</div> 

<div class="tabs1"> 
<iframe id="refframe" width="1210px" height="584px" frameborder="0" align="left" `overflow="auto" src="http://www.def.com" name="Site2">` 

如何訪問中src值tabs1 class iframe from the parent Window,ie

src =「http://www.def.com」

再次感謝

+0

請說明您是否正在處理外部域名。 – 2009-09-21 06:23:09

回答

3

iframe中的內容是否與父文檔從同一個域加載?如果沒有,那麼由於瀏覽器安全限制(same domain policy),您將無法通過javascript訪問它。

如果它來自同一個域,則應該可以使用getElementById而不會有任何問題。

1

只需使用id作爲一個獨特的值(因爲它應該是 - 見例如。 here,第7.5.2節) - 然後,GetElementById只是做你想要的,而不需要你導航任何複雜的層次結構。

1
<form name="formname" .... id="form-first"> 
    <iframe id="one" src="iframe2.html"> 
    </iframe> 
</form> 


function iframeRef(frameRef) { 
    return frameRef.contentWindow ? frameRef.contentWindow.document : frameRef.contentDocument 
} 

var inside = iframeRef(document.getElementById('one')) 

var secondIframe = inside.getElementsByTagName('iframe') 
alert(secondIframe.id) // make sure theres an iframe with an id in the iframe2.html. 

您可以使用iframeRef獲取iframe中的引用,並且只要繼續這樣做即可獲取子iframe。這應該適用於IE。

+0

注意:如果iframe中的文檔位於您的域上,這將*僅*工作。 – 2009-09-21 02:50:39

+0

RE:您的更新 - 如果不在您的域中,您*無法*訪問iframe內容。 – 2009-09-21 06:22:38

+0

瞭解你在說什麼,但我實際上是在Intranet類型設置中工作的,我實際上有權訪問我參考的所有站點,即使我跳轉到iframe中的不同站點。基於此,我是否仍然無法訪問內容? – tonyf 2009-09-21 06:27:45