有没有一种方法来模拟按下鼠标点击多个键与JavaScript? [英] Is there a way to simulate pressing multiple keys on mouse click with javascript?

查看:74
本文介绍了有没有一种方法来模拟按下鼠标点击多个键与JavaScript?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究Chrome扩展功能,以使Netflix视频播放器打开隐藏的改变质量面板。



Netflix根据您的Internet速度自动更改视频质量。

但是有一种已知的方法来打开隐藏面板并手动更改质量。



这是仅在HTML5播放器中打开隐藏面板的方法 CTRL + SHIFT + ALT + S



用户点击标题时有什么方法,

它模拟键盘键 CTRL + SHIFT + ALT + S



<$ p $ ('click','div.player-status .player-status-main-title',function(){
alert('点击! ');
//模拟?
});


解决方案

试试这个因为我无法访问经过测试的Netflix ,从11.11.14开始工作)。


$ b $ pre $ function simulateCtrlShiftAltS() {
//准备注入页面的函数
函数inject(){
//根据需要调整;一些事件仅在某些元素处理
var element = document.body;

function keyEvent(el,ev){
var eventObj = document.createEvent(Events);
eventObj.initEvent(ev,true,true);

//编辑这个以适合
eventObj.keyCode = 83;
eventObj.which = 83;
eventObj.ctrlKey = true;
eventObj.shiftKey = true;
eventObj.altKey = true;

el.dispatchEvent(eventObj);
}

//触发全部3以防万一
keyEvent(element,keydown);
keyEvent(element,keypress);
keyEvent(element,keyup);
}

//注入脚本
var script = document.createElement('script');
script.textContent =(+ injected.toString()+)();;
(document.head || document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
}

这段代码是从注释改编为您链接的答案: https://stackoverflow.com/a/10520017/2518069



成为精确,从这个例子: http://jsbin.com/awenaq/4



关于根据需要调整:

有些页面处理元素上的事件,有些等到它会冒泡到 body 或文档之类的东西。您可以通过转到开发工具,来源以及启用事件监听器断点>键盘来监视这一点。从那里,您将能够看到哪个事件触发了您需要的更改,以及哪个元素捕获了它 - 当断点触发时,它将位于 this 中。



另外,请注意,如果玩家实际上是一个插件,所有这些可能不起作用。我在YouTube HTML5播放器上测试过它:它适用于除全屏(我认为是安全限制?)的所有内容,并在元素 #movie_player 处处理。


I'm working on chrome extension to make Netflix video player opens the hidden changing quality panel.

Netflix Changes the video quality automatically depending on the speed of your Internet.

But there is a known way to open the hidden panel and change the quality manually.

This is the method to open the hidden panel in HTML5 Player Only CTRL + SHIFT + ALT + S

Is there a way when the user clicks on Title,
it simulates the keyboard keys CTRL + SHIFT + ALT + S ?

$('body').on('click', 'div.player-status .player-status-main-title', function () {
    alert('Clicked!');
    //Simulate?
});

解决方案

Try this (can't test, since I can't access Netflix tested, confirmed working as of 11.11.14).

function simulateCtrlShiftAltS() {
  // Prepare function for injection into page
  function injected() {
    // Adjust as needed; some events are only processed at certain elements
    var element = document.body;

    function keyEvent(el, ev) {
      var eventObj = document.createEvent("Events");
      eventObj.initEvent(ev, true, true);

      // Edit this to fit
      eventObj.keyCode = 83;
      eventObj.which = 83;
      eventObj.ctrlKey = true;
      eventObj.shiftKey = true;
      eventObj.altKey = true;

      el.dispatchEvent(eventObj);
    }

    // Trigger all 3 just in case
    keyEvent(element, "keydown");
    keyEvent(element, "keypress");
    keyEvent(element, "keyup");
  }

  // Inject the script
  var script = document.createElement('script');
  script.textContent = "(" + injected.toString() + ")();";
  (document.head||document.documentElement).appendChild(script);
  script.parentNode.removeChild(script);
}

This code is adapted from comments to the answer you linked: https://stackoverflow.com/a/10520017/2518069

To be precise, from this example: http://jsbin.com/awenaq/4

Regarding "adjust as needed":

Some pages process events on an element and some wait until it bubbles to something like body or document. You can spy on this by going to Dev Tools, Sources, and enabling Event Listener Breakpoints > Keyboard. From there, you'll be able to see which event triggers the change you need, and which element catches it - it will be in this when the breakpoint triggers.

Also, note that all of this may not work if the player is actually a plugin. I tested this on YouTube HTML5 player: it works for everything but fullscreen (which I believe to be a security restriction?), and is processed at element #movie_player.

这篇关于有没有一种方法来模拟按下鼠标点击多个键与JavaScript?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆