您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ChatWork notification for Scriptish
当前为
- // ==UserScript==
- // @id chatwork_notification
- // @name ChatWork Notification
- // @version 1.0
- // @namespace http://efcl.info/
- // @author azu
- // @description ChatWork notification for Scriptish
- // @include https://www.chatwork.com/*
- // @run-at window-load
- // @icon https://www.chatwork.com/favicon.ico
- // ==/UserScript==
- (function(){
- var prevUnreadCount = 0;
- var roomList = document.getElementById("cw_roomlist_items");
- if (!roomList){
- console.log("チャット画面ではない?");
- return;
- }
- /*
- http://domes.lingua.heliohost.org/webapi/intro-domcore1.html
- https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/
- */
- var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
- var openChatWork = function(){
- GM_openInTab(location.href, false, true);
- };
- // https://github.com/ento/chatwork-userscripts
- function getUnreadCount(){
- return unsafeWindow.RL.unread_sum.contact;
- }
- var observer = new MutationObserver(function(mutations){
- mutations.forEach(function(mutation){
- if (mutation.type === 'childList'){
- var unreadCount = getUnreadCount()
- // roomに新規メッセージがついた場合
- if (prevUnreadCount < unreadCount){
- GM_notification("new message", "ChatWork", null, openChatWork);
- }
- prevUnreadCount = unreadCount;
- }
- });
- });
- observer.observe(roomList, {
- attributes : false,
- childList : true,
- characterData : false
- });
- })();