您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
仿桌面通知
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/399356/787349/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);
- }
- }
- }