// ==UserScript== // @name BilibiliTimer // @version 1.0.6 // @description B站H5播放器全屏时右上角实时显示当前系统时间 // @author AnnAngela // @match *://www.bilibili.com/video/* // @match *://www.bilibili.com/html/*layer.htm* // @run-at document-start // @grant unsafeWindow // @namespace https://greasyfork.org/users/129402 // @downloadURL none // ==/UserScript== (function() { 'use strict'; /* 防止重复加载 */ if (unsafeWindow.BilibiliTimer) return; unsafeWindow.BilibiliTimer = true; /* * 出于实现上的考虑,以下代码被保存为纯文本,并通过unsafeWindow.eval运行,以操作真实环境下的DOM节点 */ var code = [ "\"use strict\";", "var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {", " return typeof obj;", "} : function(obj) {", " return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;", "};", "function _inherits(subClass, superClass) {", " if (typeof superClass !== \"function\" && superClass !== null) {", " throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : _typeof(superClass)));", " }", " subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });", " if (superClass) {", " if (Object.setPrototypeOf) Object.setPrototypeOf(subClass, superClass);", " else subClass.__proto__ = superClass;", " }", "}", "function _classCallCheck(instance, Constructor) {", " if (!(instance instanceof Constructor)) {", " throw new TypeError(\"Cannot call a class as a function\");", " }", "}", "function _possibleConstructorReturn(self, call) {", " if (!self) {", " throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");", " }", " return call && ((typeof call === \"undefined\" ? \"undefined\" : _typeof(call)) === \"object\" || typeof call === \"function\") ? call : self;", "}", "var BilibiliPlayerDate = function(_Date) {", " _inherits(BilibiliPlayerDate, _Date);", " function BilibiliPlayerDate() {", " var _ref;", " for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; }", " _classCallCheck(this, BilibiliPlayerDate);", " var _this = _possibleConstructorReturn(this, (_ref = BilibiliPlayerDate.__proto__ || Object.getPrototypeOf(BilibiliPlayerDate)).call.apply(_ref, [this].concat(args)));", " [\"getDate\", \"getFullYear\", \"getHours\", \"getMilliseconds\", \"getMinutes\", \"getMonth\", \"getSeconds\", \"getTime\", \"getUTCDate\", \"getUTCFullYear\", \"getUTCHours\", \"getUTCMilliseconds\", \"getUTCMinutes\", \"getUTCMonth\", \"getUTCSeconds\", \"getYear\"].forEach(function(key) {", " _this[key] = function() {", " var result = Date.prototype[key].apply(this, arguments);", " if (key.includes('Month')) result++;", " if (typeof result === 'number' && (result + '').length === 1) return \"0\" + result;", " else return result + '';", " };", " });", " return _this;", " }", " return BilibiliPlayerDate;", "}(Date);", "var timer = $('
');", "timer.attr('id', 'BilibiliTimer');", "var globallock = false;", "timer.css({ right: '10px', background: 'rgba(28,28,28,.8)', 'border-radius': '4px', color: '#fff', 'font-family': '\"Noto Sans CJK SC DemiLight\",Roboto,\"Segoe UI\",Tahoma,Arial,Helvetica,sans-serif', '-webkit-font-smoothing': 'antialiased', position: 'absolute', top: '10px', 'z-index': '64', padding: '15px 36px 15px 15px', display: 'none' });", "var button = $('');", "button.text('[x]');", "button.css({ position: 'absolute', right: '10px', top: '10px', 'z-index': '49', color: '#ddd', 'font-size': '13px' });", "timer.append(button);", "button.on('click', function() {", " globallock = true;", " timer.fadeOut(370);", "});", "timer.append('