EnablePIP-acfun

Enable Picture in Picture mode in acfun 在acfun中打开画中画模式,使chrome能够使用画中画。

目前为 2020-02-23 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name EnablePIP-acfun
  3. // @namespace EnablePIP
  4. // @version 2.1.0
  5. // @description Enable Picture in Picture mode in acfun 在acfun中打开画中画模式,使chrome能够使用画中画。
  6. // @author LXG_Shadow & XenoAmess
  7. // @match https://www.acfun.cn/*
  8. // @run-at document-end
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. var REFRESH_TIME = 500;
  13. var STRING_OPEN_PICTURE_IN_PICTURE = "显示画中画面板";
  14. var STRING_CLOSE_PICTURE_IN_PICTURE = "隐藏画中画面板";
  15.  
  16. var STRING_POPUP_MENU_SELECTOR = "div.container-plugins-inner > ul.context-menu";
  17. var STRING_CONTROL_BAR_SELECTOR = "div.container-controls";
  18. var STRING_VIDEO_SELECTOR = "video";
  19. var STRING_PIC_IN_PIC_SWITCH = "pictureInPictureSwitch";
  20.  
  21. var b_pipMode = false;
  22.  
  23. function switchPictureInPictureMode() {
  24. if (b_pipMode) {
  25. $("video").removeAttr("controls");
  26. $(STRING_CONTROL_BAR_SELECTOR).css("z-index", "");
  27. $(STRING_VIDEO_SELECTOR).css("z-index", "");
  28. } else {
  29. $("video").attr("controls", "controls");
  30. $(STRING_CONTROL_BAR_SELECTOR).css("z-index", "-1");
  31. $(STRING_VIDEO_SELECTOR).css("z-index", "10");
  32. }
  33. b_pipMode = !b_pipMode;
  34. $("#" + STRING_PIC_IN_PIC_SWITCH).text(b_pipMode ? STRING_CLOSE_PICTURE_IN_PICTURE : STRING_OPEN_PICTURE_IN_PICTURE);
  35. }
  36.  
  37. function addToToolBar() {
  38. if ($(STRING_POPUP_MENU_SELECTOR) != null && document.getElementById(STRING_PIC_IN_PIC_SWITCH) === null) {
  39. var $il0 = $("<li></li>");
  40. $il0.text(b_pipMode ? STRING_CLOSE_PICTURE_IN_PICTURE : STRING_OPEN_PICTURE_IN_PICTURE);
  41. $il0.attr("id", STRING_PIC_IN_PIC_SWITCH);
  42. $il0.click(switchPictureInPictureMode);
  43. $(STRING_POPUP_MENU_SELECTOR).append($il0);
  44. }
  45. }
  46.  
  47. (function () {
  48. 'use strict';
  49. if (!window.jQuery) {
  50. var oScript = document.createElement('script');
  51. oScript.type = "text/javascript";
  52. oScript.src = "//s1.hdslb.com/bfs/static/jinkela/long/js/jquery/jquery1.7.2.min.js";
  53. document.head.appendChild(oScript);
  54. }
  55. window.onload = window.setInterval(addToToolBar, REFRESH_TIME);
  56. })();