QuickTime对象的SetURL方法未定义?

时间:2008-10-02 18:11:46

标签: javascript quicktime

我的页面上有一个隐藏的嵌入式QuickTime对象,我试图通过JavaScript控制它,但它不起作用。该对象如下所示:

<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>

data参数中没有任何内容,因为在渲染时,我不知道要加载的URL。我这样设置:

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

稍后将播放音频:

player.Play();

Firefox 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()是正确的,为什么它不起作用?

3 个答案:

答案 0 :(得分:1)

尝试给对象元素一些宽度和高度(1px乘1px),并在尝试通过JavaScript与插件通信时使其在视口中可见。

我注意到如果插件区域在屏幕上不可见,则它对JS命令没有响应。

这可能解释了为什么这在IE中不起作用。

Safari和Opera应该可以工作,但FireFox肯定需要Netscape样式嵌入元素,而且你应该提供两者。此外,一旦两者都有,您需要确定在哪个浏览器中寻址哪个元素(对象与嵌入)。

答案 1 :(得分:0)

我不知道QuickTime API,但这可能值得一试:

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

答案 2 :(得分:0)

您链接的页面未提及“数据”属性。他们在一个OBJECT中有一个EMBED和PARAM,EMBED的'src'属性有url,但我没有看到你发布的内容的EMBED。