2012-05-16 32 views
0

我知道有堆棧溢出令人難以置信的類似的問題已經爲此,但我已經嘗試了其中很多,並且什麼都沒有得到。我試圖從父窗口中使用子iframe中獲取變量。用Javascript訪問Iframe變量在父親用JavaScript

在child.html頭標記

<script type="text/javascript"> 
    var myVar="1"; 
</script> 

在parent.html

<script type="text/javascript"> 
function load() 
{ 
    var scroll="0"; 
    scroll = window.myIframe.myVar; 
    if (scroll == "0") DO SOMETHING; 
    else DO SOMETHING ELSE; 
} 
</script> 
<iframe src="child.html" name="myIframe" onload="load()"> 
<p>Your browser does not support iframes.</p> 
</iframe> 

而且不管我怎麼努力,我不能讓滾動搶從孩子的iframe的myVar的變量。這幾乎是Stack Overflow和其他論壇上的例子,人們說這些論壇完美無缺;任何想法我做錯了什麼?

編輯:他們在同一個域名。

+0

如果您在這裏試圖弄清楚如何在控制檯中訪問這些變量,您可以[將控制檯的上下文更改爲子框架](http://stackoverflow.com/a/14329063/ 230167)。 –

回答

1

當頁面加載到iframe時,嘗試從子內部訪問oad()。

添加在孩子:

<body onload="parent.load()"> 

此外,還可以更改代碼通過並得到變量作爲負載(PRM)參數。

+0

感謝您的建議,這最終拋出了一個錯誤信息,我可以追查。 。 。這是一個(嘆氣)跨瀏覽器安全的東西,我沒有意識到存在。 – Terrik

0

我想你的代碼的離線和我得到一個錯誤「不安全的訪問」,同時訪問

window.myFrame 

本地網頁可能會非常棘手,但是當我在網上把同樣的文件,他們的工作很好,域和端口匹配。 我仍然認爲它在iframe上使用name =「...」有點奇怪,我會使用ID,但是這似乎並沒有打擾鉻,我可以通過父或子上的onload訪問該變量。