0

我的页面上有一个隐藏的嵌入式 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 的文档说这SetURL()是正确的,那么为什么它不起作用呢?

4

3 回答 3

1

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

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

这可以解释为什么这在 IE 中不适合您。

Safari and Opera should work, but FireFox will definitely require the Netscape style embed element, and really you should provide both. Additionally, once you have both, you need to ascertain which element (the object versus the embed) to address in which browser.

于 2009-01-17T05:26:00.780 回答
0

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

player.attributes.getNamedItem('data').value = 'http://yoururlhere';
于 2009-01-09T22:04:35.313 回答
0

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

于 2009-01-09T22:06:19.037 回答