はてなキーワード: Greasemonkeyとは
Greased Lightboxとは画像リンクをクリックするとページを移動することなくリンク先の画像を見ることができるという便利なユーザースクリプトである。たぶんGreasemonkey上で動くからGreasedという名前なのだろう。ちなみにOperaでも使える。
でGreased Lightboxが動作すると画像以外は暗くなり、画像が見やすくなるのだが黒いPC画面というのはあまり見たいものではない。画像の後ろに自分の顔が映ると萎える。というわけでこの黒い半透明の背景を白くしようと思った。
とりあえずgreasedlightbox.user.jsの色を表している部分を全部白にしてみたが背景は変わらなかった。どうやら背景は色を指定して表示しているのではなく、画像を直接指定して表示しているらしい。その画像を表す部分を見つけた。
var pngOverlay= "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPSURBVHjaYmJgYDgDEGAAANsAz1TKIeAAAAAASUVORK5CYII%3D')";
これを見るとbase64がカギを握っていそうだ。Wikipediaによると
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。
ということらしい。意味不明の文字列が半透明の黒い画像を表しているということだろう。ということは半透明の白い画像を表す文字列と置き換えれば背景を変えることができる。というわけでGIMPを使って白い色の透過PNG(1px四方)を作った。 次にこのページ( http://sveinbjorn.org/dataurlmaker )でその画像を文字列(Base64形式)に変えた。そしてgreasedlightbox.user.jsの先程の文字列と置き換えた。
変更前
var pngOverlay= "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPSURBVHjaYmJgYDgDEGAAANsAz1TKIeAAAAAASUVORK5CYII%3D')";
変更後
var pngOverlay= "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDHg0AJ+6ZOggAAAANSURBVAjXY/j//38kAAlVA1faOaSqAAAAAElFTkSuQmCC')";
こうしてGreased Lightboxの背景が白い半透明になった。かなり薄めだがGreased Lightboxが動作していると分かればいいのでこの程度の濃さで充分かな。
Greasemonkeyが0.9にアップデートされてから?かどうかは分からないけどAutoPagerizeやLDRizeが動かなくて困った。
エラーコンソールを見たらVimperatorプラグインのldrize_cooperation.jsの
GreasemonkeyService = Cc["@greasemonkey.mozdev.org/greasemonkey-service;1"].getService().wrappedJSObject; this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,codebase,sandbox){ if(sandbox.window.LDRize != undefined && sandbox.window.Minibuffer != undefined){
でエラーになっていた。
greasemonkey.jsをみてみたら
evalInSandbox: function(code, sandbox, script) {
で0.8のgreasemonkey.jsは
evalInSandbox: function(code, codebase, sandbox, script) {
だった。
- this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,codebase,sandbox){ + this.addAfter(GreasemonkeyService,"evalInSandbox",function(code,sandbox,script){
したらAutoPagerizeは動くようになった
LDRizeはこれでもまだ動かない。Vimperatorを無効にしても同じ。
どうやらGreasemonkey 0.8ではMinibufferでのwindowとLDRizeでのwindowが同一のXPCNativeWrapperオブジェクトだったけど0.9では別のオブジェクトになったようだ。だからLDRizeでのwindow.MinibufferもundefinedになるしGM_MinibufferLoadedのイベントリスナーを設定してもwindowが違うから発行されないということみたい
ううむ
追記
0.9.0から0.9.1の間のこの変更が原因ぽい…
https://github.com/greasemonkey/greasemonkey/commit/6a4ffd52c90091714e6f49376ef07e2ce5009f79
例えば、autopagerizeでpage1, page2, page3とページングされるべきところなのに、
page1, page2, page2などと実行される人や、
niconicofavlistでニコ動のお気に入りマイリストのコンテナが二個も表示される人へ。
↓
どうも、AVG Safe Searchが最新Firefoxと相性が悪い模様。
FirefoxにインストールされているGreasemonkeyスクリプ - ブラウザ - 教えて!goo
http://oshiete.goo.ne.jp/qa/6283865.html
の回答5にもあるが、AVG Safe Searchを無効にしたら治った。
↓
動作から推測するに、AVG Safe Searchは一定時間ごとに何らかのチェック動作を行うらしい。
これがGreasemonkeyの動作と相性が悪いらしい。
さてどこから消すか
Twitter の OAuth 許可ページがあまりにも酷い => 応急処置 - リタマス
これのGreasemonkey スクリプトが危険だったので修正したよ!
このスクリプトは、本文中にupdate(または更新)が入っている時に警告を出すようになっていたんだけど、これだとチェック漏れのバグがあるとwrite権限を要求しているのに警告が出ないのでread onlyのように見えてしまう
人間が本文読めばわかるから大丈夫だろと思うかもしれないけど、このスクリプト使い続けていたら警告が出ない=read onlyだと判断して本文読まなくなるはず
read onlyの時にも色を変えて警告を出すようにした(writeなら赤、read onlyなら黄)
これで警告表示の色を見れば赤ならwrite黄ならread onlyだとすぐにわかるし、警告がでなかったらなんかおかしいとすぐに気づくはずだ
危険なものと安全なものが混ざってる中から危険なものを選り分けても安心はできないけど、安全なものを選り分けたんなら安心できるよね!(これなんか専門用語ありそうだけど僕は知らない
最初のスクリプトだと https://twitter.com/oauth/authorize?* と https://twitter.com/oauth/authenticate?* で動くようになってたけど、
twitterのOAuthの認証ページは他にもhttpsのかわりにhttpを使ったものとか、twitter.comのかわりにapi.twitter.comとかがあるから、それらのページでは警告が出なかった
delicious 2.0 Thumbs for Greasemonkey
LivedoorブログをGreasemonkeyのgoogle reader full feedを使って本文読もうとするとすごい勢いで文字化けするなぁ。
全部↑に出てくるFFFDという記号になる。
文字コードとかよく分からないけど他のページは問題ないのに。
自分の普段の生活の中で、小さな不満はないだろうか?
例えばあそこのサイトはここがこうだったら使いやすいのに。とか。
毎日やるこの作業をもっと楽にできるようにはならないかな?とか。
そういう時にGreasemonkeyとかエディタやExcelのマクロを作ってみたらいいんじゃなかろうか。
最初の目標は小さいほうがすぐに結果が見えるのでいいと思う。
ちゃっちゃか見たいから勝手にいじった。
・2chブラウザで開く https://addons.mozilla.org/ja/firefox/addon/11022
・Adblock Plus https://addons.mozilla.org/ja/firefox/addon/1865
・All-in-One Sidebar https://addons.mozilla.org/ja/firefox/addon/1027
・Better YouTube https://addons.mozilla.org/ja/firefox/addon/6460
・Check4Change https://addons.mozilla.org/ja/firefox/addon/3028
・Context Search https://addons.mozilla.org/ja/firefox/addon/240
・Video DownloadHelper https://addons.mozilla.org/ja/firefox/addon/3006
・dragdropupload https://addons.mozilla.org/ja/firefox/addon/2190
・FireGestures https://addons.mozilla.org/ja/firefox/addon/6366
・FoxTab https://addons.mozilla.org/ja/firefox/addon/8879
・Google Toolbar for Firefox http://www.google.com/tools/firefox/toolbar/FT2/intl/ja/
・Greasemonkey https://addons.mozilla.org/ja/firefox/addon/748
・Hatena Bookmark https://addons.mozilla.org/ja/firefox/addon/11285/
・IE Tab https://addons.mozilla.org/ja/firefox/addon/1419
・IE View https://addons.mozilla.org/ja/firefox/addon/35
・Japanize http://japanize.31tools.com/
・Menu Editor https://addons.mozilla.org/ja/firefox/addon/710
・Resizeable Textarea https://addons.mozilla.org/ja/firefox/addon/3818
・ScrapBook https://addons.mozilla.org/ja/firefox/addon/427
・Screengrab https://addons.mozilla.org/ja/firefox/addon/1146
・User Agent Switcher https://addons.mozilla.org/ja/firefox/addon/59
・テキストリンク (Text Link) https://addons.mozilla.org/ja/firefox/addon/1939
・ブックマークを新しいタブで開く (Open Bookmarks in New Tab) https://addons.mozilla.org/ja/firefox/addon/13784
Greasemonkeyスプリクト
・AutoPagerize http://autopagerize.net/
・Loopy for YouTube http://userscripts.org/scripts/show/28832
前誰かがトラックバック展開してくれるブックマークレット作ってくれてました。
Greasemonkey化できそうだけどめんどくさいから各自でどうぞ。
javascript:(function(){var%20as=document.getElementsByTagName('a');for(var%20i=0;i<as.length;i++){var%20a=as[i].getAttribute('onclick');if(a&&a.indexOf('toggleTBC')>=0)toggleTBContent(a.match(/\d+/)[0]);}})()
追記
登録の際は適宜訂正願います
一応はまったところをメモしとこ
http://d.hatena.ne.jp/os0x/20071202/oautopagerize
・for Operaじゃなくてfor GreaseKit/Greasemetal/Chromium Greasemonkeyのファイル3つをインストール
・0AutoPagerize.Settings.jsの実行禁止ページは↓のようにカンマ(,)区切りすること
,DISABLE_SITE:[ 'http://h\\.hatena\\.ne\\.jp/', 'http://d\\.hatena\\.ne\\.jp/' ]
□Firefox用拡張機能「Greasemonkey」、Google Chromeに対応 - CNET Japan
http://japan.cnet.com/news/media/story/0,2000056023,20382295,00.htm
http://anond.hatelabo.jp/20090611195327
javascriptが全然分からないのでググりまくってなんとかできた。
XPathで要素の指定をもうちょっとなんとかするとか、今後の課題は多い。
あと、ugigiの検索結果をAutoPagerで自動的に読み込むようにしようと挑戦してみたものの挫けたよ。
どのようにnextlinkを指定すれば上手く行くのだろう。
// ==UserScript== // @name ugigi link test // @namespace http://anond.hatelabo.jp/ // @include http://ugigi.dvrdns.org/?* // ==/UserScript== var sakuhin = document.getElementsByClassName('sakuhin'); for (var i = 0; i < sakuhin.length; i++) { var relatedurl = unescape(sakuhin[i].getElementsByClassName('link')[0].childNodes[0].href); var siteinfotext = sakuhin[i].getElementsByClassName('sinfo')[0].getElementsByTagName('a')[0].text; var linkurl = genurl(relatedurl, siteinfotext); if (linkurl != null) { var a = document.createElement('a'); a.textContent = 'Link'; a.href = linkurl; var title = sakuhin[i].getElementsByClassName('title')[0]; title.appendChild(a); } } function genurl(relatedurl, siteinfotext) { match = relatedurl.match(/\/([a-z_]+)(\d*)\/(\d+$)/); var board = match[1]; var boardnum = match[2]; var idnum = match[3]; var lognum = siteinfotext.match(/\d+$/); var url; switch (board) { case 'ssw_l': url = 'http://coolier.sytes.net:8080/sosowa/ssw_l/?mode=read&amp;key=' + idnum + '&amp;log=' + lognum; break; case 'ssw_p': url = 'http://coolier.sytes.net:8080/sosowa/ssw_p/?mode=read&amp;key=' + idnum + '&amp;log=' + lognum; break; case 'compe': url = 'http://www10.atpages.jp/thcompe/compe' + boardnum + '/?mode=read&amp;key=' + idnum + '&amp;log=0'; break; case 'yotogi': url = 'http://yotogi.com/yotogi/?mode=read&amp;key=' + idnum + '&amp;log=' + lognum; break; case 'comp': var nechocompenum = siteinfotext.match(/[一二三四]/); switch (nechocompenum[0]) { case '一': url = 'http://easy2life.sakura.ne.jp/necho/comp/anthologys.cgi?action=html2&amp;key=' + idnum; break; case '二': url = 'http://easy2life.sakura.ne.jp/necho/comp2/anthologys.cgi?action=html2&amp;key=' + idnum; break; case '三': url = 'http://green.ribbon.to/~ronron/comp/?mode=read&amp;key=' + idnum + '&amp;log='; break; case '四': url = 'http://green.ribbon.to/~ronron/comp4/?mode=read&amp;key=' + idnum + '&amp;log=0'; break; default: url = null; break; } break; default: url = null; break; } return url; }
http://d.hatena.ne.jp/hetappi/20070816/1187243254
http://anond.hatelabo.jp/20090530085439
このネタなんとかなりそう。
例えば
http://www.amazon.co.jp/gp/product/4103534222/
「この本と1Q84 BOOK 2 村上春樹(1Q84 BOOK 1 村上春樹)をあわせて買う」
みたいな表示がされる・・・みたいな。
(ネタしつこくてすまん)
比較的問題の全体に対する影響度が低い「改善案」だと私が思ったものは、省いている場合があります。
細かい改善提案などについても、いつかまとめようと思います。(参考:http://i.hatena.ne.jp/t/UI%E6%94%B9%E5%96%84)
1.動作不具合と見込まれるもの
1.1.半角スペースが含まれるキーワードページが正常に表示されない
「iPod touch」というキーワードにアクセスしようとすると、「iPod」に飛びます。
発生するものと、発生しないものがあるようです。アイデアにて検討中ステータスです。
関連アイデア:http://i.hatena.ne.jp/idea/24207
1.2.1.URLキーワードは、キーワード表示が文字化けすることがある
主題の通りです。
関連アイデア:http://i.hatena.ne.jp/idea/24215
1.2.2.URLキーワードが、タイトル名で検索したときヒットしない
主題の通りです。
関連アイデア:http://i.hatena.ne.jp/idea/24509
http://i.hatena.ne.jp/idea/18718
1.3.お絵かきモード時、キャンパスリサイズが制御不能になることがある
「ウィンドウうにょーん現象」として、多くのお絵かきハイクユーザを苦しめている不具合です。
「絵を描く」→「狭くなってきたので下に枠を広げる」→「絵の続きを描こうとする」
→「下の枠が上に引きずられてウィンドウが小さくなる」→「絵の下半分が削られる」
関連アイデア:http://i.hatena.ne.jp/idea/18837
http://i.hatena.ne.jp/idea/20483
2.不具合ではないが、解決されるべきと考えられるもの
mobileからアクセスしているユーザの「誤エントリを消せない」という戸惑いの声がたまに見られます。
関連アイデア:http://i.hatena.ne.jp/idea/18629
http://i.hatena.ne.jp/idea/21943
2.2.過去のエントリを遡って閲覧することが困難、検索もできない
エントリを時系列どおりに閲覧することが現在のGUIでは簡単にできません。
関連アイデア:http://i.hatena.ne.jp/idea/18807
http://i.hatena.ne.jp/idea/18469
http://i.hatena.ne.jp/idea/20578
主題の通りです。
関連アイデア:http://i.hatena.ne.jp/idea/21587
http://i.hatena.ne.jp/idea/18644
http://i.hatena.ne.jp/idea/23919
http://i.hatena.ne.jp/idea/21089
2.4.PC版とモバイル版で各種タブの表示位置、リンク先が不統一
主題の通りです。他にも、タブの表示位置などは不統一な点が多くあります。
関連アイデア:http://i.hatena.ne.jp/idea/22471
http://i.hatena.ne.jp/idea/20671
http://i.hatena.ne.jp/idea/19119
2.5.Fanが大量にいるユーザの、Fans表示の量が多すぎる
省略表示されないので、Fanが大量にいるユーザのEntriesページが、
関連アイデア:http://i.hatena.ne.jp/idea/21356
2.6.エントリ欄の使い方がわかり難い
入力欄に説明も何もないため、初めてハイクを閲覧するユーザがRecent Entriesを見たときに、
入力欄に説明を書き、フォームをフォーカスすると文字列が消えるなどのサポートが必要と見込まれます。
参考ページ:http://h.hatena.ne.jp/invite
関連アイデア:http://i.hatena.ne.jp/idea/24335
3.不具合ではないが、検討してみるべきと考えられるもの
3.1.閲覧環境の整理に関するもの
3.1.1.見たくないキーワードがある
興味のないキーワードや、見たくないキーワード等を非表示にしたいという要望です。
Fx+GreaseMonkeyで実現されていますが、mobileや他ブラウザでは適用されませんし、
基本機能としての実装検討が期待されます。
関連アイデア:http://i.hatena.ne.jp/idea/21160
詳細は「3.1.1.見たくないキーワードがある」と同様です。
関連アイデア:http://i.hatena.ne.jp/idea/24495
3.2.1.お気に入り登録を制御したい
自分に対するお気に入り登録を「ストーキング」されていると感じる場合があるようです。
登録された際に拒否できるようにするなどの対応が考えられます。
関連アイデア:http://i.hatena.ne.jp/idea/21300
http://i.hatena.ne.jp/idea/21391
http://i.hatena.ne.jp/idea/23918
http://i.hatena.ne.jp/idea/21179
http://i.hatena.ne.jp/idea/18295
3.2.2.Replyを制御したい
「3.2.1.お気に入り登録を制御したい」と方向性は同じです。
執拗にReplyされるなどの行為が「ストーキング」されていると感じる場合があるようです。
特定ユーザからのReplyを拒否できるようにするなどの対応が考えられます。
関連アイデア:http://i.hatena.ne.jp/idea/23762
http://i.hatena.ne.jp/idea/19451
3.3.ユーザをお気に入り指定した際、対象のユーザのAboutがお気に入りキーワード扱いになる。
仕様か不具合か不明です。少々、不自然な動作であると考えられます。
関連アイデア:http://i.hatena.ne.jp/idea/20725
仕様か不具合か不明です。少々、不自然な動作であると考えられます。
関連アイデア:http://i.hatena.ne.jp/idea/23776
本来キーワードとして指定できる文字列は「255バイトまで」となっていて、
エントリ時にキーワードを指定する場合は、超過分はカットされます。
しかし、関連キーワードにキーワードを追加する際は、この制限が適用されません。
結果、「関連キーワードに長大なキーワードをAddする」→「そのリンクをクリック」→
「長大なキーワードページでエントリ」とすることで、長大なキーワードを指定してエントリすることができます。
迷惑行為に利用することができる点で問題視されます。
関連アイデア:http://i.hatena.ne.jp/idea/20722
http://i.hatena.ne.jp/idea/20545
画像は過去にある昆虫の画像が大量に張られる事態に際し、1エントリには3枚までとなっています。
しかし、動画の数には制限がなく、迷惑行為に利用することができる点で問題視されます。
関連アイデア:http://i.hatena.ne.jp/idea/20981
4.現在の利用状況に関連するもの
4.1.RecentEntriesページに関するもの
4.1.1.過度長文・動画・画像の連投によってRecentEntriesが使い辛くなる
RecentEntriesを中心に閲覧しているユーザはかなり多いようです。
このため、一部のユーザ(&BOT)が大量にエントリをすると、そういったユーザにとって
ハイクの閲覧が困難・視界に入るうものの多様性の喪失となり、不満を抱く原因になるようです。
非表示機能の充実、RecentEntriesをTOPページにしない、などの対応が考えられます。
関連アイデア:http://i.hatena.ne.jp/idea/21136
http://i.hatena.ne.jp/idea/19817
疲れたので一旦ここまで……気が向いたら思いつき次第追記します。
LDR Full Feed for Greasemonkey
http://userscripts.org/scripts/show/22702
Google Reader Full Feed
http://mattn.kaoriya.net/software/firefox/greasemonkey/20080225184928.htm
メモ程度に、はてブを快適に見るという視点で洗い出し。
■まずはアドオン
公式アドオン Hatena Bookmark
https://addons.mozilla.org/ja/firefox/addon/11285
わりとこれだけで十分なんだけど、ブックマークの追加がものすごく速くできる。
他にもタグやブックマークの検索・整理もできる。アドレスバーでブックーマークの補完表示は嬉しい。
キーボード操作にも対応しててかなり良いみたい。
コメント表示は、はてなブックマークカウンタのが良いと思う。
とりあえず入れてて間違いない感じかな。
はてなブックマークカウンタ
http://miniturbo.org/product/extension/hatebucounter/
ページのコメントを画面右下に表示してくれる便利なやつ。かなり見やすい。
公式アドオンの登場により、それだけがメリットかも。
同じサイトのSBMカウンタの方を入れれば、他のブックマークサービスのカウント数なんかも見れる。
検索結果とコメントがいっしょ
https://addons.mozilla.org/ja/firefox/addon/11494
ヤフー、グーグル、自分のブックマークで記事にアクセスしなくてもブクマ数とコメントを表示できる便利なやつ。
これ入れたらマイブックマークとか見るのがわりと楽しい。
公式にはグーグルには対応してないようだけどリンク先の一番下にある実験機能をオンにすると動いた。
なぜかSleipnirのフェンリル製。見た目が良いのはさすが。
■そしてページ
はてブリーダー君
http://solvalou.net/hatebu/
人気・注目エントリーを左のメニューに表示し、右側のフレームで内容を表示する。
簡単にチェックできる。
はてブリーダー(機能停止中)
http://vgzh.dtdns.net/hatebu/
死んでしまったので掲載を悩んだが、最も使いやすかった。
現在は表示できないが、ブクマ数に比例して、記事のフォントサイズが大きくなり、記事をクリックするとページ内フレームが開くという現在普及しているリーダー系の先駆けだった。
日付もはてブサービス開始時からの好きな日を指定して見ることができた。
はてブ年鑑
http://tech.nitoyon.com/hatebu_nenkan/
はてブの年間・月刊ランキング、タグクラウドなど、見た目も良く、たまに振り返りたいときに便利。
ドメインごとのサイトランクなども見てみておもしろい。
RSSリーダーや、本サイトでは確認できない情報が見れる。
Sleipnir Startのニュース
http://www.sleipnirstart.com/
これまたフェンリルのサイト。
ニュース機能がはてブ閲覧に特化してる。はてブリーダーに近い。
記事ごとのコメントをその場で確認できるので便利。
アドオンの「検索結果とコメントがいっしょ」を入れると、人気と注目の570件全部チェックできる。
公式の中の人が解説してる。
http://d.hatena.ne.jp/kiyotaka_h/20090416/1239909292
じわじわ来てるエントリー
http://k52.org/jwjw/
そこそこのブクマ数を集めながらも、集中的にブクマされたことがないために「人気エントリー」に上がってきていないページを見ることができる。
公式の新着と人気の中間。見落としがちな所はここでカバーできそう。
はてぶリーダー for iPhone
http://i.pecipeci.net/hb/
iPhone向け。ぱっと見で使い方がわかる。
記事をタップすると、ブクマ数などの情報が出てきて、そこからジャンプするっぽい。
以上です。
Greasemonkeyスクリプトのまとめはこちらが良いようです。
http://tinyurl.com/d8ungr
コメントいただければまた追記するので、いいのあったら教えてくださいね。