2011-10-14 82 views
0

我有一個小網站,尚未聯機但無所謂。裏面我有兩個框架:Javascript從另一個HTML文件更改屬性值

<html> 
<frameset border="transparent" cols="63%,37%"> 
<frame src="A.html" name="A" NORESIZE> 
<frame src="B.html" name="B" NORESIZE> 
</frameset> 
</html> 

在框架A有一個按鈕。

<html> 
<body> 
<input onClick="#" type="button"/> 
</body> 
</html> 

幀B中有一個YouTube視頻:

<html> 
<body> 
<object id="obj" name="obj" width="100%" height="100%"> 
<param id="param" name="movie" value="http://www.youtube.com/url"/> 
<param name="allowFullScreen" value="true"></param> 
<param name="allowscriptaccess" value="always"/> 
<embed id="embed" name="embed" src="http://www.youtube.com/url"" type="application/x-shockwave-flash" width="100%" height="100%" allowfullscreen="true"/> 
</object> 
</body> 
</html> 

現在我想要讓嵌入的源和參數的(命名的影片)值變化到另一個網址。
我試了很多代碼。下面的JavaScript代碼,例如,將無法正常工作:

top.frames["B"].document.getElementById("movie").value = 'http://www.youtube.com/otherurl'; 
top.frames["B"].document.getElementById("embed").src = 'http://www.youtube.com/otherurl'; 


因此,如果任何人都知道該怎麼做這些代碼的權利或如何得到與其他代碼相同的結果,我會很感激。

預計感謝,VVW。

+3

Frames ?!這是90年代! [不要使用幀!](http://www.html-faq.com/htmlframes/?framesareevil) –

回答

0

感謝任何回答的人。我對所有代碼進行了一些嘗試,結果其實非常簡單。

top.frames["divtest"].document.getElementById("embed").setAttribute('src','http://www.youtube.com/v/lPMx86wXaKY?version=3&amp;hl=nl_NL'); 
top.frames["divtest"].document.getElementById("param").setAttribute('value','http://www.youtube.com/v/lPMx86wXaKY?version=3&amp;hl=nl_NL'); 

我想知道爲什麼我沒有拿出那個,所以我向大家道歉,並感謝大家的所有幫助。

VVW

1

您的DOM是broketh:

變化<param id="param" name="movie" value="http://www.youtube.com/url"

到... <param id="param" name="movie" value="http://www.youtube.com/url" />

+0

@ AlienWebGuy:
對不起,是不是問題,輸入錯誤。感謝您的嘗試,故障將被編輯。 – VVW

0

從父,你不能訪問,也沒有操縱子幀的元素,這是一種安全措施,否則它很容易出現將惡意網站封裝在iframe中的銀行網站,並且父母會讀取您輸入的密碼。

不要做框架。

+0

@ Carlos:
有趣的理論,但我看到一個教程示例,其中一個人用另一個在框架上改變了文本框的值。這個例子確實有效,但是當我將它與youtube urls一起插入我的代碼時,它不再工作。所以這是一個事實:這是可能的。
source

VVW – VVW

+0

@Carlos - 並非如此。只有框架的內容來自不同的域時纔是這種情況。只要每個幀包含來自同一個域的內容,訪問就不受限制。 – gilly3

相關問題