2008-01-02

はてブメタブックマークがうざすぎる

なのでJavaSciptの勉強がてら、メタブックマークを見えなくするユーザースクリプトを作った。DOMがよくわからないので変なところがあるかも。スコープノードリストなんかもよくわかってないので、無駄なところもあるかも。

以下ソース

Opera用
// ==UserScript==
// @name      Metabu Eraser
// @include   http://b.hatena.ne.jp/entrylist*
// @author    Hatena Anonymous User MASUDA
// @version   0.0.1
// ==/UserScript==
(function(){
    document.onload = main;
    
    
    function main(){
        var entryList = filterByTagAndClass("div", "entry");
        
        checkAndErase(entryList);
    }
    
    
    function filterByTagAndClass(tag, name){
        var list = document.getElementsByTagName(tag);
        var newList = [];
        
        for(var i = 0; i < list.length; i++){
            if(list[i].className == name){
                newList.push(list[i]);
            }
        }
        
        return newList;
    }
    
    
    function checkAndErase(nodeList){
        for(var i=0; i < nodeList.length; i++){
            var elem = nodeList[i].getElementsByTagName("a")[0];
            
            if(elem.href.substring(0,50) == "http://b.hatena.ne.jp/entry/http://b.hatena.ne.jp/"){
                nodeList[i].parentNode.removeChild(nodeList[i]);
            }
            
        }
    }
})();
Firefox(Greasemonkey)
// ==UserScript==
// @name          Metabu Eraser
// @include       http://b.hatena.ne.jp/entrylist*
// @description   version:0.0.1
// ==/UserScript==

main();

function main(){
    var entryList = filterByTagAndClass("div", "entry");
    
    checkAndErase(entryList);
}

function filterByTagAndClass(tag, name){
    var list = document.getElementsByTagName(tag);
    var newList = [];
    
    for(var i = 0; i < list.length; i++){
        if(list[i].className == name){
            newList.push(list[i]);
        }
    }
    
    return newList;
}


function checkAndErase(nodeList){
    for(var i=0; i < nodeList.length; i++){
        var elem = nodeList[i].getElementsByTagName("a")[0];
        
        if(elem.href.substring(0,50) == "http://b.hatena.ne.jp/entry/http://b.hatena.ne.jp/"){
            nodeList[i].parentNode.removeChild(nodeList[i]);
        }
    }
}

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん