Facebook message count

Show facebook message count on https://www.facebook.com/messages

目前為 2016-11-23 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Facebook message count
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Show facebook message count on https://www.facebook.com/messages
// @author       Tomáš Falešník
// @match        https://www.facebook.com/messages/*
// @grant        none
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==

(function() {
    'use strict';
    function $x(path) {
        return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    }
    var observeDOM = (function(){
        var MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
            eventListenerSupported = window.addEventListener;

        return function(obj, callback){
            if( MutationObserver ){
                // define a new observer
                var obs = new MutationObserver(function(mutations, observer){
                    if( mutations[0].addedNodes.length || mutations[0].removedNodes.length )
                        callback();
                });
                // have the observer observe foo for changes in children
                obs.observe( obj, { childList:true, subtree:true });
            }
            else if( eventListenerSupported ){
                obj.addEventListener('DOMNodeInserted', callback, false);
                obj.addEventListener('DOMNodeRemoved', callback, false);
            }
        }
    })();

    observeDOM($("body")[0], function() {
        var messageCount = $x('//*[@id="u_0_t"]/div/div[3]/div/div[4]/div[2]/div[1]/div[2]/div/div/div[5]/div/div[1]/div/a/span[3]/span').innerHTML;
        console.log(messageCount);
        var messageHeader = $("#webMessengerHeaderName");
        if (!$("#messageCount").length) {
            $('<h2 class="_r7" style="max-width: 286px; font-size: 13px;"> (<span id="messageCount"></span> +- messages)</h2>').insertAfter(messageHeader);
        }
        $("#messageCount").html(messageCount);
    });
})();