「Tsukikage/β公開」は管理者からの閲覧のみ許可しています。 ログイン ログイン
Firefox と Opera, IE ではコンテンツ・スコープにアクセスする何らかの方法があるのだが、Google Chrome ではどうやってもダメだった。汎用的かつ直接的なアクセス方法はないといえる。 変数の変更と関数の呼出 この問題をトリッキーに(ある程度)解決するのが、ロケーション・ハックと呼ばれる方法だ。 はじめに具体例を出してみよう。例えば、コンテンツ・スコープで定義されている変数 x に 234 を代入する場合には次のようにする。 location.href = "javascript: void(x = 234);"; location.href に入れた URI がコンテンツ・スコープで評価されることを利用した裏技である。location を利用した裏技であるから「ロケーション・ハック」と呼ばれる。 上の例では、void(x = 234) がコンテンツ・スコープで評価さ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
GreasemonkeyからScriptishへの環境移行メモです。 ScriptishについてはScriptish wiki!やScriptish (Greasemonkey フォーク版) キタ━━━ヽ(゚∀゚)ノ━ – hogehoge @teramakoを見るとよいです。 簡単にまとめると、使えるAPIが増えた(開発者的にうれしい)、管理画面の設定項目がGreasemonkeyより豊富(Greasemonkey0.9で削られたinclude,excludeの設定もGUIからできます)、UIが日本語化されてる(ちょっと分かりづらい訳だけど…) Greasemonkeyからフォークしてるので、Greasemonkey向けに書かれたスクリプト自体の互換性は問題ないです。 逆にScriptishの新APIを使ったものはGreasemonkeyでは動かない事があるぐらいだと思います。 環境の移
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ホントに「ちゃんと」なのか怪しいけど。Firefox3とOpera9.6で動くのは確認。 http://userscripts.org/scripts/show/37569 ページが継ぎ足されるたびに全エントリの位置を再計算しているので、ページが大きくなると重くなります。。 折角なのでコメントつけてみたり。 // ==UserScript== // @name b.hatena ldrizer // @namespace http://ss-o.net/ // @include http://b.hatena.ne.jp/* // ==/UserScript== // LDRizeより後に実行する必要があるのでsetTimeoutする(ユーザースクリプトの管理で並べ替える必要がなくなる) setTimeout(function(unsafeWindow) { // 実行して問題ないかベタに
以前からある手法から順番に見ていきます。 ページの高さの監視 setIntervalでページの高さを監視して、増えていたらAutoPagerizeが動いたとみなして処理を行う var THRESHOLD = 300; var _height = window.innerHeight; setInterval(function(){ if (window.innerHeight - _height > THRESHOLD) { // 処理 } _height = window.innerHeight; }, 300); メリット AutoPagerizeだけでなく、はてなダイアリー・ブックマーク、Twitterなどでのサイト側でのページの継ぎ足しにも対応できる デメリット THRESHOLDをいくつにするかなど、一概に決められない。タイマーをたくさん回すと重くなる。Floatしている要素を継
(Please use Lite mode if your device has less memory or low processor.) The AutoPager Firefox extension automatically loads the next page of a site inline when you reach the end of the current page for infinite scrolling of content. It includes a adblock similar features to allow you filter out the ads from the contents in the loaded page contents. It works well with most of the greasemonkey scrip
// ==UserScript== // @name 超テスト // @namespace http://d.hatena.ne.jp/drgqst/ // @description 超スーパーグレイトウルトラテスト // @include http://www.google.co.jp/* // ==/UserScript== (function(){ /* ここに JSDeferred のコードを貼り付けた */ function parseJSON (d) { // unsafe return eval("("+d.responseText+")"); } next(function () { return xhttp.get("http://twitter.com/statuses/public_timeline.json").next(parseJSON); }). next(f
たしかに両者は似ているところもあるのだが... 正直、僕はそんなに似ていると言いたくない。何か誤解を与えそうで怖いからだ。 いろいろと書く前に言葉の定義 Jetpack 拡張本体 Greasemonkey 拡張本体 JetpackScript Jetpackのエンジンで動作するスクリプト UserScript(ユーザスクリプト) Greasemonkeyのエンジンで動作するスクリプト 似ているところ Jetpack, Greasemonkey どちらも拡張機能であること どちらもスクリプトのエンジンであること JetpackScript, UserScript インストール/アンインストールにFirefox自体の再起動が必要ない JavaScriptで記述 制限を緩和するためのAPIがある 値を保持するためのAPI クロスサイトなXMLHttpRequest 似てないところ Jetpack
Firefoxにスクリプトベースの軽量アドオンを追加可能にするJetpack。バージョン0.1.0からスタートしたエンジンはあっという間に0.1.5にまでバージョンアップし、さらにJetpack Enhancement Proposal(JEP)と呼ばれるAPI候補も公開されるなど、凄まじい勢いで開発が進められている。 そんな中、Product LeadのAza Raskin氏が自己のブログで『Jetpack FAQ』を公開した。ユーザーからの質問にRaskin氏が答える形式で、抽象的な回答にとどまっているものも少なくないが、時折強く興味を惹かれる記述も見られた。 一つ目がこれだ。 Q: Is Jetpack competitive against the Greasemonkey add-on or is the goal really something different? They
最近、インターネット上では、笑いを表現する時に「(笑)」のかわりに「w」を使う傾向が強くなっています。入力しやすい事、そして「w」の長さによってその笑いの度合いを表現できるため便利だからだと考えられます。しかし、HTMLは連続した半角英字を表示する際に自動的に折り返さず、半角英字を内包した要素が横に引き延ばされます。スタイルシート等で一応対策を打つ事が可能ですが、あまり見栄えは良くありません。 ところで、はてなスターというサービスがあります。詳細はここでは割愛しますが、このサービスでは気に入ったホームページに好きな数だけスター(☆)をつける事ができます。また、他の人がつけたスターも見る事ができるため、人気のホームページではスターが100を超える事があります。増え過ぎたスターが画面を覆い尽くす事はないのでしょうか。はてなスターではこの問題をスターを省略して表示する事で解決しています。例えば、
< スペースアルクの検索結果はページ遷移のリンクがJavaScriptになっているため、XPathでどう頑張っても対応できないという話がAutoPagerize Wiki: siteinfo requestにあった。 それならと、AutoPagerizeにインクリメントモードとURLフィルターを追加するプラグインを書いてみた - 0xFFにアルク対応を入れてみました。 http://ss-o.net/userjs/test/autoincrementerplugin.user.js (Minibuffer、AutoPagerize、LDRizeそれぞれの最新版との組み合わせで動作確認しています) カスタムAutoPagerize - 0xFFをどうぞ。 今回はAutoPagerize.addDocumentFilterを使いました。 AutoPagerize.addDocumentFilt
Tumblrが新しくなって、よく見ていた/show/quotes/by/everyoneがちゃんとページングされなくなって悲しいと思っていたらcxxさんがFix Tumblr Dashboard Pagination for Greasemonkeyというスクリプトを書いてくれていました。 しかし21世紀はじめの10年最後の2009年ももう終わろうとしているにも関わらず、未だにTumblr dashboard reblog 4点セットのAutoPagerizeとLDRizeとMiniBufferとreblogCommandの実行される順序をちゃんと覚えておかないといけないなんてローテクすぎる!という怒りにまかせて、順番に関係なく入れておけば動くように細工をしました。 AutoPagerize version 0.0.35~ LDRize version 2009.01.21~ Minibu
AutoPagerize の提供する API に関して。 http://autopagerize.jottit.com/ の一番下に書いてあるんだけど addFilter を使って新規読み込み部分に対する処理を行うらしい。んだけどこれだけじゃ正直よくわからない。 addFilter と addDocumentFilter の違いもパッとしないのでソースを追ってわかったことを以下に書いていく。 とりあえず最初のページを baseDoc と呼ぶことにするとページ追加の処理は以下の感じになってる。 指示された次のページ取得。 取得したページを元に document オブジェクトを作る ( この document オブジェクトを newDoc と呼ぶことにする ) 。 newDoc に対して addDocumentFilter で指定された関数群を適用する。 htmlDoc から SITEINFO
amachangの記事でXPathのすごさ$X関数の便利さを知って、もうこれ無しではグリモン書く気になれないくらいになっている。 で、最近グリモンでは@requireによって外部スクリプトを取り込むことができること、$X関数がgist公開されていることを知り、グリモンから直接gistの$X関数を取り込むようにする方法を調べた。 その方法はユーザースクリプトのメタ情報として @require http://gist.github.com/3238.txtを書いておくといい。ポイントは$X関数が公開されているURLが"http://gist.github.com/3238"で、この後ろに".txt"を付加してあげている。こうすると、そのスクリプトが生のテキストとして取得できるらしい。と、いうことをどこかのページで見たんだけど、わすれてしまった。orz グリモンのヘッダの例 // ==UserS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く