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