有没有办法模拟用鼠标点击鼠标按下多个键?

Jim*_*Jim 4 javascript jquery html5 google-chrome google-chrome-extension

我正在研究chrome扩展,以使Netflix视频播放器打开隐藏的不断变化的质量面板.

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

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

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

有没有办法当用户点击标题时,
它模拟键盘键CTRL + SHIFT + ALT + S

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

Xan*_*Xan 9

试试这个 (无法测试,因为我无法访问Netflix 测试,确认工作时间为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);
}
Run Code Online (Sandbox Code Playgroud)

此代码根据您链接的答案的评论进行调整:https://stackoverflow.com/a/10520017/2518069

确切地说,从这个例子:http://jsbin.com/awenaq/4

关于"根据需要调整":

有些页面处理元素上的事件,有些页面会等到它起泡body或类似的东西document.您可以通过转到Dev Tools,Sources和启用事件监听器断点>键盘来监视此事.从那里,您将能够看到哪个事件触发了您需要的更改,以及哪个元素捕获它 - 它将this在断点触发时出现.

此外,请注意,如果播放器实际上是插件,则所有这些可能都不起作用.我在YouTube HTML5播放器上测试了这个:它适用于除全屏之外的所有内容(我相信这是一个安全限制?),并在元素处理#movie_player.


归档时间:

查看次数:

3038 次

最近记录:

8 年,12 月 前