【问题标题】:Why click() doesn't work on object tag <object>?为什么 click() 对对象标签 <object> 不起作用?
【发布时间】:2011-10-04 16:59:45
【问题描述】:

我正在尝试为 google chrome 做一个扩展。它会自动点击谷歌词典结果中的扬声器图标,使其自动发音。

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

我正在使用此代码:document.getElementById("pronunciation").click()

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

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

【问题讨论】:

    标签: javascript dom google-chrome-extension greasemonkey


    【解决方案1】:

    由于对象是 flash,因此除非 Google 将点击支持内置到 flash 文件中,否则向其发送点击事件将不起作用——他们显然没有这样做。

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

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

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

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

    【讨论】:

    • +1 表示查询选择器。我不知道我们可以查询子节点:)
    【解决方案2】:

    播放图标是一个 Flash 播放器。

    onclick 事件很可能不在舞台上(我不知道这是否适用于单击对象),而是在 flash 内的元素上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2013-11-02
      • 2013-03-16
      • 2015-01-03
      相关资源
      最近更新 更多