0

我正在尝试创建一个可以从 hiphopdx 下载 mp3 的 chrome 扩展。我发现一旦你点击网站上的播放按钮,就有可能提取 mp3 的下载链接。但是我坚持让我的扩展程序点击播放按钮。这是我在其上使用扩展程序的页面示例: http ://www.hiphopdx.com/index/singles/id.16603/title.fred-the-godson-f-the-kid-daytona-回到学校的产品-kaimbr

我的清单 json

"name": "My Test",
"version": "1",
"manifest_version": 2,
"background": {
    "scripts": ["popup.js"]
},
"browser_action": {
    "default_icon": "icon.png"
},
"permissions": ["tabs", "http://*/*", "https://*/*"]

我的 popup.html

<!doctype html>
<html>
  <head>
    <script src="popup.js"></script>
  </head>
  <body>
  </body>
</html>

popup.js

function ShowOperationMessage(obj, evt) {
        var fireOnThis = obj;
        if (document.createEvent) {
            var evObj = document.createEvent('MouseEvents');
            evObj.initEvent(evt, true, false);
            fireOnThis.dispatchEvent(evObj);
        } else if (document.createEventObject) {
            fireOnThis.fireEvent('on' + evt);
        }
    }

ShowOperationMessage(document.getElementsByClassName("playBtns medium awesome red adjust launchplayer left"),"click");
4

1 回答 1

0

将您的代码修改为内容脚本代码,我能够单击按钮

在此处输入图像描述

参考

添加了内容脚本部分以消除背景内容

清单.json

{
    "name": "Mouse Clicks",
    "version": "0.0.1",
    "manifest_version": 2,
    "description": "This demonstrates how mouse clicks are tracked",
    "content_scripts": [
    {
      "matches": ["http://www.hiphopdx.com/index/singles/id.16603/title.fred-the-godson-f-the-kid-daytona-back-to-school-prod-kaimbr"],
      "js": ["myscript.js"]
      }
  ]

}

myscript.js

document.getElementsByClassName("playBtns medium awesome red adjust launchplayer left")obj[0]返回一个如此使用索引的数组

function ShowOperationMessage(obj, evt) {
    var fireOnThis = obj[0];
    if (document.createEvent) {
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent(evt, true, false);
        fireOnThis.dispatchEvent(evObj);
    } else if (document.createEventObject) {
        fireOnThis.fireEvent('on' + evt);
    }
}

ShowOperationMessage(document.getElementsByClassName("playBtns medium awesome red adjust launchplayer left"), "click");

如果您需要更多信息,请与我们联系。

于 2012-12-11T11:56:48.637 回答