您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
仿桌面通知
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/399356/1025166/DToast.js
function d_toast_init_css() { var d_toast_text_node = ".d-toast-close:hover{color:#FFFFFF !important}.d-toast{animation:d-toast-left-in 0.5s;-moz-animation:d-toast-left-in 0.5s; /* Firefox */-webkit-animation:d-toast-left-in 0.5s; /* Safari and Chrome */-o-animation:d-toast-left-in 0.5s; /* Opera */}.d-toast-close::before{content:\"+\";}@keyframes d-toast-left-in{from {right:-400px ;}to {right:30px;}}@-moz-keyframes d-toast-left-in /* Firefox */{from {right:-400px;}to {right:30px;}}@-webkit-keyframes d-toast-left-in /* Safari 和 Chrome */{from {right:-400px;}to {right:30px;}}@-o-keyframes d-toast-left-in /* Opera */{from {right:-400px;}to {right:30px;}}@keyframes d-toast-right-out{from{right: 30px;}to{right: -400px;}}@-webkit-keyframes d-toast-right-out{from{right: 30px;}to{right: -400px;}}@-moz-keyframes d-toast-right-out{from{right: 30px;}to{right: -400px;}}@-o-keyframes d-toast-right-out{from{right: 30px;}to{right: -400px;}}.d-toast-close-start{animation: d-toast-right-out 0.5s;-webkit-animation: d-toast-right-out 0.5s;-moz-animation: d-toast-right-out 0.5s;-o-animation: d-toast-right-out 0.5s;}"; var d_toast_style = document.createElement("style"); d_toast_style.type = "text/css"; try { d_toast_style.appendChild(document.createTextNode(d_toast_text_node)); } catch (ex) { d_toast_style.styleSheet.cssText = d_toast_text_node; } var head = document.getElementsByTagName("head")[0]; head.appendChild(d_toast_style); } d_toast_init_css(); class dToast { constructor(config) { this.toast(config); } inner(config) { var date = new Date(); date = date.getHours() + ":" + date.getMinutes(); var _div = document.createElement("div"); var _div_icon = document.createElement("div"); var _div_content = document.createElement("div"); var _close = document.createElement('span'); var _div_img = document.createElement("img"); var _div_ul = document.createElement("ul"); var _div_li_1 = document.createElement("li"); var _div_li_2 = document.createElement("li"); var _div_li_3 = document.createElement("li"); _close.className = "d-toast-close"; _close.style.transform = "rotate(45deg)"; _close.style.webkitTransform = "rotate(45deg)"; _close.style.mskitTransform = "rotate(45deg)"; _close.style.mozkitTransform = "rotate(45deg)"; _close.style.oTransform = "rotate(45deg)"; _close.style.color = "#ADADAD"; _close.style.fontSize = "26px"; _close.style.fontWeight = "normal"; _close.style.position = "absolute"; _close.style.top = "10px"; _close.style.right = "10px"; _close.style.display = "none"; var toast_data = config.data; _div_img.setAttribute("src", config.icon); _div_li_1.innerText = config.title; _div_li_2.innerText = config.body; _div_li_3.innerHTML = date + "<span style='font-size:16px;font-weight:bold;'> · </span>" + config.master; _div_img.onerror = function(e) { _div_icon.display = "none"; _div_content.style.left = "30px"; }; _div.onmouseover = function(e) { _close.style.display = "block"; }; _div.onmouseout = function(e) { _close.style.display = "none"; }; _close.onclick = function(e) { _div.className = "d-toast-close-start"; setTimeout(function() { _div.remove(); if (typeof onclose == "function") { config.onclose(e); } }, 500); }; _close.onselectstart = function() { return false; }; var toast_items = document.getElementsByClassName("d-toast"); var _div_bottom = (125 * toast_items.length) + 20; var _body_height = document.documentElement.clientHeight; if (_body_height - 125 < _div_bottom) { for (var i = toast_items.length - 1; i >= 0; i--) { toast_items[i].remove(); } _div_bottom = 20; } if (typeof config.onclick == "function") { _div.onclick = function(e) { var _target = e.target; if (_target.nodeName == "SPAN") { _close.click; } else { config.onclick(toast_data); } }; } _div.style.cursor = "default"; _div.style.width = "360px"; _div.style.height = "120px"; _div.style.position = "fixed"; _div.style.bottom = _div_bottom + "px"; _div.style.right = "20px"; _div.style.backgroundColor = "#474747"; _div_img.style.width = "50px"; _div_img.style.height = "50px"; _div_img.style.position = "absolute"; _div_img.style.top = "25px"; _div_img.style.left = "15px"; _div_content.style.position = "absolute"; _div_content.style.left = "80px"; _div_content.style.top = "6px"; _div_ul.style.listStyle = "none"; _div_ul.style.paddingLeft = "0px"; _div_li_1.style.color = "#FFFFFF"; _div_li_1.style.fontWeight = "bold"; _div_li_1.style.fontSize = "16px"; _div_li_2.style.color = "#ADADAD"; _div_li_2.style.fontSize = "16px"; _div_li_3.style.color = "#ADADAD"; _div_li_3.style.fontSize = "12px"; _div_li_3.style.marginTop = "-3px"; _div.className = "d-toast"; _div_icon.className = "d-toast-icon"; _div_content.className = "d-toast-content"; _div_li_1.className = "d-toast-title"; _div_li_2.className = "d-toast-body"; _div_li_3.className = "d-toast-info"; _div_ul.appendChild(_div_li_1); _div_ul.appendChild(_div_li_2); _div_ul.appendChild(_div_li_3); _div_icon.appendChild(_div_img); _div_content.appendChild(_div_ul); if (typeof config.icon == "string") { _div.appendChild(_div_icon); } else { _div_content.style.left = "30px"; } _div.appendChild(_div_content); _div.appendChild(_close); var _d_toast_timeout = config.timeout; if (typeof _d_toast_timeout == "undefined") { _d_toast_timeout = 6500; } if (typeof config.master == "undefined") { config.master = document.domain; } document.body.appendChild(_div); setTimeout(function() { _div.className = "d-toast-close-start"; setTimeout(function() { _div.remove(); }, 500); }, _d_toast_timeout); } toast(config) { var self = this; var toast_config = config; if (window.Notification && Notification.permission !== "denied" && config.inner !== true) { Notification.requestPermission(function(status) { if (status == "granted") { var _config = { lang: "zh-CN", tag: "toast-" + (+new Date()), body: config.body, }; if (typeof config.icon == "string") { _config.icon = config.icon; } if (typeof config.data != "undefined") { _config.icon = config.data; } if (typeof config.timeout != "undefined") { _config.timestamp = config.timeout; } const d_toast_n = new Notification(config.title, _config); var d_toast_data = config.data; d_toast_n.onclick = function(e) { if (typeof toast_config.onclick == "function") { toast_config.onclick(d_toast_data); } }; } else { if (config.dev === true) { console.warn('请允许通知!'); } self.inner(config); } }); } else { if (config.dev === true) { console.warn("你的浏览器不支持!\n1、被禁止通知\n2、请更换浏览器\n3、已设置成浏览器通知"); } self.inner(config); } } }