EnablePIP-icourse163

Enable Picture in Picture mode in icourse163 在icourse163(中国大学MOOC)中打开画中画模式,使chrome能够使用画中画。

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

  1. // ==UserScript==
  2. // @name EnablePIP-icourse163
  3. // @namespace EnablePIP
  4. // @version 2.1.0
  5. // @description Enable Picture in Picture mode in icourse163 在icourse163(中国大学MOOC)中打开画中画模式,使chrome能够使用画中画。
  6. // @author LXG_Shadow & XenoAmess
  7. // @match https://www.icourse163.org/*
  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.u-edu-h5player-popmenu > ul";
  17. var STRING_CONTROL_BAR_SELECTOR = "div.m-controlbar.j-controlbar";
  18. var STRING_VIDEO_SELECTOR = "div.u-edu-h5player-mainvideo";
  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.addClass("u-edu-h5player-popmenu_item j-item");
  41. $il0.text(b_pipMode ? STRING_CLOSE_PICTURE_IN_PICTURE : STRING_OPEN_PICTURE_IN_PICTURE);
  42. $il0.attr("id", STRING_PIC_IN_PIC_SWITCH);
  43. $il0.click(switchPictureInPictureMode);
  44. $(STRING_POPUP_MENU_SELECTOR).append($il0);
  45. }
  46. }
  47.  
  48. (function () {
  49. 'use strict';
  50. if (!window.jQuery) {
  51. var oScript = document.createElement('script');
  52. oScript.type = "text/javascript";
  53. oScript.src = "//s1.hdslb.com/bfs/static/jinkela/long/js/jquery/jquery1.7.2.min.js";
  54. document.head.appendChild(oScript);
  55. }
  56. window.onload = window.setInterval(addToToolBar, REFRESH_TIME);
  57. })();