为什么click()不能用于对象标签<object>?</object>

时间:2011-07-13 17:22:27

标签: javascript dom google-chrome-extension greasemonkey

我正在尝试为Google Chrome进行扩展。它会自动点击谷歌词典结果中的扬声器图标,使其自动发音。

http://www.google.com/dictionary?langpair=en|en&q=love&hl=en&aq=f

我正在使用此代码:document.getElementById(“发音”)。click()

但是,我想知道为什么它不起作用?实际上标签确实支持标准方法 - 正如w3schools写道:http://www.w3schools.com/jsref/dom_obj_object.asp

你能建议任何方法使其有效吗?

2 个答案:

答案 0 :(得分:2)

由于对象是闪存,因此发送点击事件将无效,除非Google在Flash文件中构建了点击支持 - 他们显然没有这样做。

但是,实际的音频文件是flash程序的参数,并链接到子节点。

对于给定的示例,它是:“http://www.gstatic.com/dictionary/static/sounds/de/0/love.mp3”。
这可以通过以下方式获得:

var soundFile = document.querySelector ("#pronunciation a").href;

然后将此文件传递给库,例如SoundManager 2,您的脚本可以自动播放(可能您的同事/家人可以怜悯您的灵魂。:))。

答案 1 :(得分:1)

播放图标是flash播放器。

很可能onclick事件不在舞台上(我不知道这是否会在点击对象时起作用),而是在flash中的元素上。