読者です 読者をやめる 読者になる 読者になる

モノノフ日記

普通の日記です

Livedoor Readerからショートカットキー一発でdel.icio.usとはてなブックマークにぶくまするGreasemonkeyが動作しなかった

Internet

煤 - Note : ldr2sbm.user.js 2.0

上記サイトで紹介されてたGreasemonkeyを導入してみましたが動作しませんでした。

どうもスクリプト読み込み時にエラーを返しているご様子。

よく見てたらLivedoor Readerの上の方にいる人が一瞬だけ下記エラーを返してました。

我ながら良く気づいたと思いますw

しかし、あんまり報告されてない所を見ると俺の環境だけで発生してるのかもしれません(;・∀・)

key has no properties, http://reader.livedoor.com/js/event.0.3.2.js,498

keyって変数名がもうLDR側で使われてるのかわかりませんがコンフリクトしてるみたいっすね。
なのでてきとーに修正。keysという変数名をsbmkeysに変更したら動作しました。

全部貼り付けてますが、オリジナルからの修正箇所は14行目、38行目、56行目です。

使ってみたところかなり便利です。

最近はLivedoorクリップしか使ってなかったのではてブdel.icio.usも使おうと思います。


// ==UserScript==
// @name livedoor Reader 2 SBM
// @namespace http://susu.whitesnow.jp/ns/userscripts
// @description bookmark the entry gets your attention on the spot
// @include http://reader.livedoor.com/reader/*
// @version 2.0
// @license MIT License http://www.opensource.org/licenses/mit-license
// ==/UserScript==


(function() {

// settings
var sbmkeys = {
'delicious' : 'd',
'hatebu' : 'h'
};


if (typeof unsafeWindow == 'undefined') // for Creammonkey
addKeys({});
else
{
var w = unsafeWindow;
var onload = w.onload;
w.onload = function() {
onload();
addKeys(w);
}
}


function addKeys(w)
{
with (w)
{
// del.icio.us
Keybind.add(sbmkeys.delicious, function() {
var item = get_active_item(true);
if (!item) return;

var queries = {
'v' : '4',
'noui' : '1',
'jump' : 'close',
'url' : encodeURIComponent(item.link),
'title' : item.title
};

open(makeURI('http://del.icio.us/post', queries), 'delicious', 'toolbar=0,width=700,height=400');
});

// ?b
Keybind.add(sbmkeys.hatebu, function() {
var item = get_active_item(true);
if (!item) return;

var queries = {
'mode' : 'confirm',
'is_bm' : '1',
'url' : encodeURIComponent(item.link),
'title' : item.title
};

open(makeURI('http://b.hatena.ne.jp/add', queries), 'hatebu', 'width=550,height=600,resizable=1,scrollbars=1');
});
}
}


function makeURI(endPoint, queries)
{
var URI = '';
for (var q in queries)
URI += '&' + q + '=' + queries[q];

return endPoint + '?' + URI.slice(1);
}

})();