はてなダイアリーで好きなテーマ(デザイン)を適用するブックマークレット

ベーステーマを指定していないダイアリーで効かなかったので修正。

はてなグループの日記でも可。
下記のコードはdeltaCSSファイルのパス(/theme/delta/delta.css)を指定した例。

javascript:(function(){if(!/[dg].hatena.ne.jp/.test(location.href))return;var theme='/theme/delta/delta.css';var head=document.getElementsByTagName('HEAD').item(0);var links=head.getElementsByTagName('LINK');head.getElementsByTagName('STYLE').item(0).sheet.disabled=true;for(var i=0,l=links.length;i<l;i++){var link=links.item(i);if(link.rel=='stylesheet'&&/theme/.test(link.href)){link.href=theme;return;}}var newLink=document.createElement('LINK');newLink.rel='stylesheet';newLink.type='text/css';newLink.href=themePath;head.appendChild(newLink);})();

下記のコードは圧縮前のもの。

javascript:(function(){
if(!/[dg].hatena.ne.jp/.test(location.href)) return;
var theme = '/theme/delta/delta.css';
var head = document.getElementsByTagName('HEAD').item(0);
var links = head.getElementsByTagName('LINK');
head.getElementsByTagName('STYLE').item(0).sheet.disabled = true;
for(var i=0, l=links.length; i<l; i++) {
    var link = links.item(i);
    if(link.rel == 'stylesheet' && /theme/.test(link.href)) {
        link.href = theme;
        return;
    }
}
var newLink = document.createElement('LINK');
newLink.rel = 'stylesheet';
newLink.type = 'text/css';
newLink.href = themePath;
head.appendChild(newLink);
})();