2008-10-02 87 views
0

我在我的頁面上隱藏了嵌入的QuickTime對象,我試圖通過JavaScript來控制它,但它不起作用。對象如下所示:QuickTime對象的SetURL方法未定義?

<object id="myPlayer" data="" type="audio/mpeg" pluginspage="http://www.apple.com/quicktime/download" width="0" height="0"> 
    <param name="autoPlay" value="false" /> 
    <param name="controller" value="false" /> 
    <param name="enablejavascript" value="true" /> 
</object> 

數據參數中沒有任何內容,因爲在渲染時,我不知道要加載的URL。我把這樣的:

var player = document.getElementById("myPlayer"); 
player.SetURL(url); 

音頻將在稍後進行回放用:

player.Play(); 

火狐3.0.3產生在JavaScript控制檯中沒有錯誤,但是當Play()被稱爲沒有出現播放。 Safari瀏覽器3.0.4產生在控制檯以下錯誤:

"Value undefined (result of expression player.SetURL) is not object." 

的Internet Explorer 7.0.5730.11提供了以下非常有幫助的錯誤消息:

"Unspecified error." 

我有QuickTime版本7.4在我的機器上安裝。 Apple's documentationSetURL()是正確的,那爲什麼它不起作用?

回答

1

嘗試給對象元素一些寬度和高度(1px乘1px),並在嘗試通過JavaScript與插件通信時使其在視口內可見。

我注意到,如果插件區域在屏幕上不可見,它對JS命令沒有反應。

這可能可以解釋爲什麼在IE中這不適合你。

Safari和Opera應該可以工作,但是FireFox肯定會需要Netscape樣式的嵌入元素,並且確實應該提供兩者。此外,一旦擁有兩者,您需要確定哪個元素(對象與嵌入對象)在哪個瀏覽器中處理。

0

我不知道QuickTime的API,但是這可能是值得一試:

player.attributes.getNamedItem('data').value = 'http://yoururlhere'; 
0

您鏈接到頁面中沒有提到一個「數據」屬性。他們在一個對象中有EMBED和PARAM,而EMBED的'src'屬性具有URL,但是我沒有在你發佈的內容中看到EMBED。