Kyl*_*oer 5 javascript jquery google-chrome google-chrome-extension
我正在开发我的第一个Google Chrome扩展程序.我希望能够使用我的扩展程序点击Google音乐测试版页面上的"竖起大拇指"按钮.出于某种原因,竖起大拇指按钮似乎比随机播放,重复播放,播放,下一个和之前更复杂.对于所有这些,以下代码有效:
chrome.tabs.executeScript(tab_id,
{
code: "location.assign('javascript:SJBpost(\"" + command +
"\");void 0');",
allFrames: true
});
Run Code Online (Sandbox Code Playgroud)
其中command ="playPause","nextSong","prevSong","toggleShuffle","togglePlay"等.
我想了很多使用开发人员工具来跟踪堆栈跟踪并查看给SJBpost的参数.使用"thumbsUp"尝试SJBpost会返回错误.
显然这个问题仅限于较小的人群,因为不是每个人都能够查看Google音乐的来源,但如果你能帮助我,我会非常感激.
Google音乐页面上竖起大拇指的div如下所示:
<div id="thumbsUpPlayer" class="thumbsUp" title="Thumbs up"></div>
Run Code Online (Sandbox Code Playgroud)
现在,我尝试使用jQuery做到这一点:
$("#thumbsUpPlayer").click()
Run Code Online (Sandbox Code Playgroud)
但是我在javascript控制台中得到了TypeError,undefined_method消息.
任何帮助将不胜感激.我是javascript和插件的初学者,以及所有这些东西,我很高兴能将这些扩展的最后部分放在一起.
谢谢!
看来 Google Music Beta 实际上并不监听事件click()
本身,而是基于通常在实际点击事件之前的事件:mouseover、mousedown 和 mouseup。
我不是 jQuery 专家,所以我无法确切地弄清楚为什么$("#thumbsUpPlayer").mouseover().mousedown().mouseup()
不起作用(doing 也不起作用.trigger
)。
无论如何,这里有一些(于 6 月 21 日测试)工作的 javascript 代码(无依赖项)。
function triggerMouseEvent(element, eventname){
var event = document.createEvent('MouseEvents');
event.initMouseEvent(eventname, true, true, document.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, element);
element.dispatchEvent(event);
}
function replicateClick(element){
triggerMouseEvent(element, 'mouseover');
triggerMouseEvent(element, 'mousedown');
triggerMouseEvent(element, 'mouseup');
}
function thumbsUp(){
replicateClick(document.getElementById('thumbsUpPlayer'));
}
function thumbsDown(){
replicateClick(document.getElementById('thumbsDownPlayer'));
}
Run Code Online (Sandbox Code Playgroud)
它应该很容易使用,thumbsUp()
如果你想要竖起大拇指,就打电话,thumbsDown()
如果你想要反对,就打电话。
归档时间: |
|
查看次数: |
1244 次 |
最近记录: |