livedoor Readerでスクロールをスムーズにする続き
ぼちぼち散歩 livedoor ReaderまたはFastladderでスクロールをスムーズにするGreasemonkeyの続き.
livedoor Reader内の関数を置き換える方法から,__defineSetter__,__defineGetter__,__lookupSetter__,__lookupGetter__でHTML要素のscrollTopプロパティを直接書き換えるさらに邪悪な(?)方法にしてみた.はじめ,__defineSetter__したプロパティに対して+=とか-=とかが使えないのかと思ったら,ちゃんとGetterの方も定義したら大丈夫になった.
- ldr smoth scroll
- インストール
あと,KeybindからGM_setValueを呼ぼうとすると,
Greasemonkey access violation: unsafeWindow cannot call GM_setValue.
と言われて,どうしたものかと思っていたら,ちょうと前回も参照させてもらったとこでunsafeWindow 内から GM_* や window.eval を使う - KBDAHOLIC - やぬすさんとこに,同じことが書いてありすぐさま解決することができた.感謝です!
2009/01/11 02:56 | Firefox | トラックバック(0) | コメント(0)
livedoor ReaderまたはFastladderでスクロールをスムーズにするGreasemonkey
livedoor Readerでいかに早くフィードを読むかについてはたまに考えていて,ぼちぼち散歩 livedoor Readerでフィードを読むのがちょっとだけ早くなるかも知れないUser CSSとかしてみたけど, 結局使うのをやめてしまった.で,ふとiPhoneのLDR touchでフィードを読んでいるとなんとなく読みやすくて,これはスクロールが滑らかだからじゃないか?ということでやってみた.
「次のアイテム」(j, enter),「前のアイテム」(k, shift+enter), 「下にスクロール」(space, pagedown),「上にスクロール」(shift+space, pageup)が全てスムーズになります.また,設定画面から有効,無効などを設定できます.自動のときは高さが閾値より大きいときのみスムーズにスクロールします.このへんはlivedoor Readerのソースにそうしようとした形跡があったのでアイデアをパクらせてもらいました.設定画面はそれぞれ以下のような感じです(クリックで拡大します).
livedoor Reader | Fastladder |
---|---|
![]() |
![]() |
さらにFastladder まわり ( miscs 改良 ) - KBDAHOLIC - やぬすさんとこのアイデアをパクらせてもらって,tで一番上へ,bで一番下へスクロールも実装しました.あとS(shift+s)でなし→常に→自動→なし→…とトグルすることができます.
スクロールの実装が適当過ぎて,なんか酔いそうになることもあるけどまぁまぁいい感じのような気がするのでしばらく試してみようと思います.スムーズにイージングとかつけたらもう少しそれっぽくなるのかなぁ.
2009/01/10 00:24 | Firefox | トラックバック(0) | コメント(0)
Tree Style TabとMultiple Tab HandlerをVimperatorから使うプラグイン
FirefoxアドオンのTree Style TabとMultiple Tab Handlerが大好きなので,Vimperatorからというかキーボードから操作できるプラグインを書いてみた.
デフォルトのキーマッピングを上書きするなどおれおれ仕様なので注意.multipleTabHandler.jsでは,<Leader>mで選択,非選択をトグルでき,選択されたタブがあるときとないときでdとrの動作を変えている.treeStyleTab.jsの方もズームのマッピングを一部潰している.
とりあえずオプションでデフォルトのキーマッピングを上書きするかどうかを選べるようにするべきか.あと,mutipleTabHandler.jsの方はcopy.jsとかと連携できたりするとよさそうやなぁ.
ちなみに,Tree Style Tabについてはぼちぼち散歩 ここ数日のVimperatorのバグを直すつもりのパッチに書いたようにVimperatorのタブへのbindingを消さないとえらいことになる
2009/01/04 22:46 | Firefox | トラックバック(0) | コメント(0)
git HEADのVimperatorでsuggestengineが動かなくなっていたので直してみた
引数名と関数の中でletしてる変数名が一緒だったので,うまく検索エンジンの名前が渡せてなかったようだ.
diff --git a/vimperator/content/bookmarks.js b/vimperator/content/bookmarks.js
index afb276e..2d1e579 100644
--- a/vimperator/content/bookmarks.js
+++ b/vimperator/content/bookmarks.js
@@ -562,12 +562,12 @@ function Bookmarks() //{{{
return searchEngines;
},
- getSuggestions: function getSuggestions(engine, query, callback)
+ getSuggestions: function getSuggestions(engineName, query, callback)
{
let ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
const responseType = "application/x-suggestions+json";
- let engine = ss.getEngineByAlias(engine);
+ let engine = ss.getEngineByAlias(engineName);
if (engine && engine.supportsResponseType(responseType))
var queryURI = engine.getSubmission(query, responseType).uri.spec;
if (!queryURI)
2008/12/21 04:38 | Firefox | トラックバック(0) | コメント(2)
ここ数日のVimperatorのバグを直すつもりのパッチ
とりあえずこれで良さそう?
diff --git a/content/options.js b/content/options.js
index be173f5..4777c42 100644
--- a/content/options.js
+++ b/content/options.js
@@ -947,7 +947,7 @@ function Options() //{{{
let context = CompletionContext("");
let res = this.completer(context);
if (!res)
- res = context.allItems.map(function (item) [item.text]);
+ res = context.allItems.items.map(function (item) [item.text]);
return Array.concat(values).every(
function (value) res.some(function (item) item[0] == value));
},
あと,タブにOverlayされるとTreeStyleTabがぶっ壊れるので回避してみる.TODO見る限りは,将来的にはset guioptionsでどうにかできるようになる模様.
diff --git a/content/tabs.js b/content/tabs.js
index 25f4c94..3f86a7e 100644
--- a/content/tabs.js
+++ b/content/tabs.js
@@ -220,8 +220,8 @@ function Tabs() //{{{
validator: options.validateCompleter
});
// TODO: Add option, or only apply when go~=[nN]
- styles.addSheet("tab-binding", "chrome://*",
- ".tabbrowser-tab { -moz-binding: url(chrome://liberator/content/vimperator/bindings.xml#tab) !important; }", true);
+ // styles.addSheet("tab-binding", "chrome://*",
+ // ".tabbrowser-tab { -moz-binding: url(chrome://liberator/content/vimperator/bindings.xml#tab) !important; }", true);
}
2008/11/29 22:24 | Firefox | トラックバック(0) | コメント(0)