您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Oscar's Library
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/10200/54879/OscarLibrary.js
// ==UserScript== // @name OscarLibrary // @namespace OscarLibrary // @version 2015.06.02.01 // @require http://code.jquery.com/jquery-1.11.3.min.js // @grant unsafeWindow // ==/UserScript== // @run-at document-end $ = $ || unsafeWindow.$; var ElementBuilder = { containerId: null, buildCss: function(content) { var css = document.createElement('style'); css.type = 'text/css'; css.innerHTML = content; document.getElementsByTagName('header')[0].appendChild(css); }, buildHtml: function(content, parent) { parent = parent || $('body'); parent.append(content); }, buildContainer: function(id) { if (!$('#' + id).length) { this.buildHtml('<div id="' + id + '" style="position:fixed;top:100px;left:0;opacity:0.7;font-family:verdana;font-size:12px">' + '<div id="' + id + '_Left" style="float:left;background:red;cursor:pointer;width:8px"></div>' + '<div id="' + id + '_Right" style="float:left"></div>' + '</div>'); $('#' + id + '_Left').click(this.event_Toggle); } this.containerId = id; return $('#' + id + '_Right'); }, buildComponent: function(content, containerId) { containerId = containerId || this.containerId; if (!containerId) return; var parent = this.buildContainer(containerId); this.buildHtml(content, parent); $('#' + containerId + '_Left').css('height', parent.height()); }, event_Toggle: function() { $(this).next().toggle(); } }; var Cache = { read: function(key) { var value = localStorage.getItem(key); return JSON.parse(unescape(value)) || {}; }, write: function(key, obj) { var value = JSON.stringify(obj || {}); localStorage.setItem(key, escape(value)); }, remove: function(key) { if (key) localStorage.removeItem(key); else localStorage.clear(); } }; function ServerClock() { var self = this; var now = new Date().getTime(); var format = function(date) { var hh = date.getHours().toString(); var mm = date.getMinutes().toString(); var ss = date.getSeconds().toString(); return (hh[1] ? hh : '0' + hh[0]) + ':' + (mm[1] ? mm : '0' + mm[0]) + ':' + (ss[1] ? ss : '0' + ss[0]); }; this.checkInterval = 20000; var requireCheck = true; var check = function() { if (requireCheck) { var start = new Date().getTime(); var http = new XMLHttpRequest(); try { //http.open('HEAD', '.', false); http.open('HEAD', '#', false); http.setRequestHeader('Range', 'bytes=-1'); http.send(null); } catch (e) { } var end = new Date().getTime(); now = new Date(http.getResponseHeader('Date')).getTime() + parseInt((end - start) / 2, 10); } setTimeout(check, self.checkInterval); }; var control = null; this.init = function(ctrlId) { control = document.getElementById(ctrlId); }; var tickTock = function() { var time = format(new Date(now)); control.innerHTML = time; now += 1000; setTimeout(tickTock, 1000); self.onTickTock(time); }; this.run = function() { check(); tickTock(); }; this.toggleCheck = function() { requireCheck = !requireCheck; }; this.onTickTock = function(current) {}; } function Booking() { var self = this; this.isLooped = true; this.interval = 500; this.isStopped = false; var onResponse = function(rsp, url, method, data) { if (self.onResponse(rsp, url, method, data)) { self.isStopped = true; self.onFinished(); } else self.onUnfinished(rsp, url, method, data); }; this.query = function(url, method, data) { if (method && method.toLowerCase() === 'get') $.get(url, function(rsp) { onResponse(rsp, url, method, data); }); else $.post(url, data, function(rsp) { onResponse(rsp, url, method, data); }); }; this.onResponse = function(rsp, url, method, data) {}; this.onFinished = function() {}; this.onUnfinished = function(rsp, url, method, data) { if (this.isLooped && !this.isStopped) setTimeout(function() { self.query(url, method, data); }, this.interval); }; } ElementBuilder.buildContainer('o_container'); ElementBuilder.buildComponent('<div>服务器时间: <span id="o_serverClock"></span><input type="button" id="o_btnServerClock" style="width:80px" value="本地时间"></div>'); var serverClock = new ServerClock(); serverClock.init('o_serverClock'); serverClock.run(); $('#o_btnServerClock').click(function() { var btn = document.getElementById('o_btnServerClock'); btn.value = btn.value === '本地时间' ? '服务器时间' : '本地时间'; serverClock.toggleCheck(); });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址