いろいろ文句言いながらも,しつこく bloglines 使ってます.
以前書いた keep new を解除する bookmarklet [2006-
今までの bloglines では keep new のチェックボックスをクリックするとそのたびにページ遷移が発生していたのだけど,最近 Ajax 対応したらしくページ遷移しなくなった.というわけで bookmarklet の方で自前で Ajax 化する必要はなくなって,本家が用意してくれている JavaScript 関数を呼びまくるだけでよい.ずいぶんシンプルになった.
javascript:(function() { var ipts = top. basefrm. document. getElementsByTagName(" input" ) ; for (var i = 0, k = 0; i < ipts. length; i+ + ) { if (ipts[i] . type = = " checkbox" && String(ipts[i] . onclick) . match(/ markUnreadItem\ (\ s* (\ d+ ) \ s* , \ s* (\ d+ ) \ s* , \ s* (\ d+ ) \ s* , . * \ ) / ) && ipts[i] . checked = = true) { var siteid = RegExp. $ 1; var subid = RegExp. $ 2; var itemid = RegExp. $ 3; ipts[i] . checked = false; top. treeframe. keepItem(siteid, subid, itemid, false) ; } } } ) () ;
改版しました [2006-
他人様のコードをいじっているうちに [2006-
以前,bloglines で表示中の記事のタイトル名,URL をまとめてクリップボードにコピーする bookmarklet (Firefox 専用)
という流れが多くて,何とかならんかなと思ってたのだ.
というわけでこんな感じ.
onload を使っているので MSIE では動作しないはず.直すのは簡単だと思うけど,とりあえず放置.
ソース:
javascript:(function() { function phandler (paths) { if (paths. length < 1) { return; } else if (paths. length = = 1) { top. treeframe. location = paths[0] ; return; } var p = paths. shift() ; var xhr = new XMLHttpRequest() ; xhr. onload = function () { phandler(paths) ; } ; xhr. open(' GET' , p, true) ; xhr. send(null) ; } var paths = new Array; var ipts = top. basefrm. document. getElementsByTagName(" input" ) ; for (var i = 0, k = 0; i < ipts. length; i+ + ) { if (ipts[i] . type = = " checkbox" && String(ipts[i] . onclick) . match(/ markUnreadItem\ (\ s* (\ d+ ) \ s* , \ s* (\ d+ ) \ s* \ ) / ) && ipts[i] . checked = = true) { var subid = RegExp. $ 1; var itemid = RegExp. $ 2; ipts[i] . checked = false; paths[k+ + ] = ' / myblogs_ subs? ui= 1&subid= ' + subid+ ' &itemid= ' + itemid; } } phandler(paths) ; } ) () ;
期せずして Ajax デビューしてしまった.(XML 使ってないから Aj デビューか?
やってることは単純で,keep new のチェックボックスについている
onclick 属性から,その記事の subid と itemid を取り出して,それらからパス名 '
bloglines で実際に keep new のボタンを押した場合は,
parent.
(open の第3引数を false にすればもっと簡単に書けるかと思ったけど,そうすると解除がすべて終わるまで操作を受け付けなくなってしまって,使いにくかった)
ついでなので,まとめてクリップボードにコピーする方もちょっとだけ書き直しておく.以前のは正規表現で無理矢理抽出してたけど,真面目に DOM ツリーをたどるようにした.
ソース:
javascript:(function() { function setClipboard(text) { / * 省略 (http: / / la. ma. la/ misc/ js/ setclipboard. txt) * / } function fmt(title, href) { return ' \ r\ n\ t* ' + title + ' : \ r\ n\ t- ' + href + ' \ r\ n' ; } var clog = ' ' ; var h3s = top. basefrm. document. getElementsByTagName(" h3" ) ; for (var i = 0; i < h3s. length; i+ + ) { var a = h3s[i] . getElementsByTagName(" a" ) [0] ; clog = clog + fmt(a. firstChild. nodeValue, a. href) ; } setClipboard(clog) ; } ) () ;
ChangeLogメモ以外の形式に変換したい場合は,fmt()
*
最終更新時間:
*
[Pragnesh]
Wow, this is in every rseepct what I nee... (2013-01-01 19:28:22)