素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

JavaScriptグループに入った。

うれしいことにg:javascriptのグループに招待されたので入った。
javascripterの日記 - g:javascriptが僕の所。
まだ何を書くかは決めてない。もしかしたら使わないかも。

グループからダイアリーに移るブックマークレット

javascript:location.href=location.href.replace(/\w+\.g/,'d');

はてなキーワードへのリンクを削除するGreasemonkey with DOM:Range

追記:DOM:Rangeはタイミングがシビアな感じなので、下のスクリプトはAutoPagerizeと同時に使うとうまく動かなくなるっぽい。それに、*.g.hatena.ne.jpの日記のキーワードが消えてない。グダグダなので書き直す。

document.createRange()とかを使うと、画面表示に影響せずにいろいろいじれる。
主な効能:軽くなる。

詳しくはページが見つかりません | Mozilla Developer Network

// ==UserScript==
// @name           removeKeywords
// @namespace      http://d.hatena.ne.jp/javascripter/ 
// @description    はてなキーワードへの自動リンクを削除します
// @include        http://d.hatena.ne.jp/*
// @include        http://*.g.hatena.ne.jp/*
// @include        http://anond.hatelabo.jp/*
// @exclude        http://d.hatena.ne.jp/keyword/*
// @exclude        http://*.g.hatena.ne.jp/keyword/*
// ==/UserScript==

(function(){
 function removeKeywords(docs){
  docs.forEach(
   function(doc){
    var range = document.createRange();
    range.selectNode(doc);
    var docF = range.extractContents();
    var keywords=docF.firstChild.getElementsByClassName('keyword');
    while(keywords.length > 0){
     keywords[0].parentNode.replaceChild(keywords[0].firstChild,keywords[0]);
    }
    range.insertNode(docF)
   })
 }
 removeKeywords([document.body]);
 if(window.AutoPagerize) window.AutoPagerize.addFilter(removeKeywords);
})();

documentから必要な部分を切り取って、いじってからペーストするような感じ。
切り取ったもののfirstChildがrangeのルートになる。


そろそろ自分のスクリプトを置く場所が欲しい。CodeReposとかそういうのが適してるような感じがするけど、コミット権を持ってないし、svnも知らない。敷居が高い。