2008-10-02 85 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。

相关问题