foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

Firefox Greasemonkey 指定したサイトのリンクを新しいタブで開く

// ==UserScript==
// @name           general_new_tab
// @namespace      http://foldrr/general_new_tab
// @include        http://www.google.com/bookmarks/*
// ==/UserScript==

(function (){
    const TARGET = "_blank";
    
    var settings = [
        {
            site: "http://www.google.com/bookmarks/",
            xpath: "//table[@class]//a[@id]",
        },
        /*
        {
            site: "",
            xpath: "",
        },
        /**/
    ];
    
    for(var si = 0, sn = settings.length; si < sn; si++){
        if(0 <= location.href.indexOf(settings[si].site)){
            var nodes = xpath(settings[si].xpath);
            for(var i = 0, n = nodes.length; i < n; i++){
                nodes[i].target = TARGET;
            }
        }
    }
    
    function xpath(query) {
        var r = new Array();
        var nodes = document.evaluate(query, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
        for(var i = 0, n = nodes.snapshotLength; i < n; i++){
            r.push(nodes.snapshotItem(i));
        }
        return r;
    }
})();