2008-06-01から1ヶ月間の記事一覧
JSDeferred – CodeRepos::Share – Trac は簡単に非同期処理ができるライブラリ。JSDeferredを使うと、AutoPagerizeのアイコンをカーソル移動に少し遅れて移動するスクリプトは下のように書ける。 // ==UserScript== // @name moveAutoPagerizeIcon // @names…
/lang/javascript/userscripts/autopageloader.user.js – CodeRepos::Share – Trac 取得済みのURLを保存するようにしたので、Twitter等で同じページを何度も継ぎ足したりしなくなった。 documentFilterが関数に渡す値を、AutoPagerize互換にした。 継ぎ足し…
var s = getComputedStyle(document.createElement('span'), null); var list = []; for(var i=0;i < s.length;i++) list.push(s.item(i)); list.sort() console.log(list);
Greasemonkeyは、アドレスが.user.jsで終わればContent-Typeが何であってもインストールしようとするので、中身がHTMLでもまともに見ることが出来ない。 具体的には、githubのAutoPagerizeとか。それを直す。 // ==UserScript== // @name userjsAddQMark // …
英単語に1秒以上マウスオーバーしたら、その単語の意味をSPACE ALCからスクレイピングしてきて、生成したa要素のtitle属性に設定する。hrefには、取ってきたURLを設定する。 // ==UserScript== // @name mouseoverAlc // @namespace http://d.hatena.ne.jp/j…
var span = document.createElement('span'); span.style.color = '-moz-visitedhyperlinktext'; var visitedColor = getComputedStyle(span, null).color;//"rgb(85, 26, 139)" 上記のような簡単なコードで、訪問済みの色を取得することができる。有害なエ…
Firefox2のposition:fixedが重たいらしい話とAutoPagerize - 0xFFのAutoPageLoader用を書いた。 // ==UserScript== // @name AutoPageLoaderNotFixed // @namespace http://d.hatena.ne.jp/javascripter/ // @include http* // ==/UserScript== (function ()…
GM_getValueの第二引数には、デフォルト値が指定できるので、 var value = GM_getValue('foo'); if (typeof value == 'undefined') value = 'default'; ではなく、 var value = GM_getValue('foo', 'default'); と書くことが出来る。デフォルト値を指定して…
AutoPageLoaderのコードを大幅に変えた。 $Xを使った。 ページの継ぎ足しにDocumentFragmentを経由するようにした 他のスクリプトがページの構造を変えたときに、正常にpageElementを取得できなかったバグを修正した DocumentFragmentについては、http://pur…
throbberってのはページのロード中に表示される、くるくる回るアイコンのこと。GM_xmlhttpRequestやXMLHttpRequestを使う場合は回ってくれないので、自分で動かす必要がある。 Index: autopagerize.user.js ===============================================…
CodeReposにコミットした。 /lang/javascript/userscripts/draglikeadobereader.user.js – CodeRepos::Share – Trac Alt+ドラッグで選択。文字選択を解除するには、window.getSelection().removeAllRanges();ってすればいいことが分かったので、それを使って…
// ==UserScript== // @name getOlderAddons // @namespace http://d.hatena.ne.jp/javascripter/ // @include https://addons.mozilla.org/*/firefox/* // ==/UserScript== location.href = 'javascript:navigator.__defineGetter__("userAgent", function(…
追記2:XPathを使った方法も載せた 追記:ルート直下の場合でもうまくいくように変更 親ノードがなくなるまで辿る。この関数は下のように書ける。 function getNextNode(node) node.nextSibling ? node.nextSibling : node.parentNode ? getNextNode(node.pa…
document.addEventListener('mousemove', function(e) { var range = e.rangeParent; if (range.nodeType != Node.TEXT_NODE) return; var word = getWord(range.wholeText, e.rangeOffset); if (word) console.log(word); }, false); function getWord(base…
追記:一番下の追記も見てください。特権昇格できてしまいます。Twitter / miya2000: @javascripter wrappedJSObjで、wrappedJSObjectが危険だという話を聞いていろいろ試してみました。 試したGreasemonkeyのバージョンは0.8.20080609.0です。まず、Greasem…
資料が見当たらなかったので、Firebugで調べて分かったことをメモする。 position:absoluteの場合; 機能 編集可能(編集された要素には_moz_dirty属性が付加される) リサイズ可能 移動可能 クリック時 _moz_abspos属性が付加される _moz_resizing属性が付加…
const MOVE_PX = 10; document.addEventListener('keypress', function(e) { var elem = document.evaluate('//*[@_moz_resizing="true" and @_moz_abspos]', document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) .singleNodeValue; if (elem …
追記2:CodeReposのほうは修正しました。CodeReposのほうからダウンロードしてください。 追記:下のコードは脆弱なので、もし使用されている方がいたら一旦使用を中止してください。すいません。 /lang/javascript/userscripts/unziplinker.user.js – CodeR…
SITEINFOの取得に失敗したら次回取得するようにした。 SITEINFOを一定期間経ったら再取得する機能を、urlごとに分けた。 SITEINFOを動的に弄れるようにした。アイコンをクリックでテキストエリアが出る。 コードのインデントを変えた。 /lang/javascript/use…
いろいろ考えたけど、下のが簡単でいいと思う。 // ==UserScript== // @name Twitter AutoFocus off // @namespace http://d.hatena.ne.jp/javascripter/ // @include http://twitter.com/home // ==/UserScript== window.addEventListener('load', function…
一度取得したものをずっと使いまわすのなら、SITEINFOの取得がこんなに楽に。 // ==UserScript== // @name getsiteinfo_test // @namespace http://d.hatena.ne.jp/javascripter/ // @include http* // @require http://wedata.net/databases/AutoPagerize/i…
追記:下のコードは脆弱なので、もし使用されている方がいたら一旦使用を中止してください。すいません。 大きい画像とかがある時に使えるかもしれない。 // ==UserScript== // @name lazyImageLoader // @namespace http://d.hatena.ne.jp/javascripter/ //…
AutoPagerizeやjAutoPagerizeでは出来るのに、AutoPageLoaderで出来ないのはくやしいので、キャッシュの更新日チェックをするようにした。 /lang/javascript/userscripts/autopageloader.user.js – CodeRepos::Share – Trac にコミットした。あと、id:drryさ…
Linkify Google Search Results for Greasemonkeyが便利。 だけど、 検索ワードの強調表示(bタグ)がなくなってしまう。 AutoPagerizeに対応してない。 アニメーションは必要ない。 というのが気になったので、自分用に作った。 ソースを見てもやっているこ…
とりあえずテストも兼ねて、autopageloader.user.jsをアップロードしました。 URLは /lang/javascript/userscripts/autopageloader.user.js – CodeRepos::Share – Trac 。 よろしくお願いします。
var dialog = document.body.appendChild(document.createElement('div')); var message = dialog.appendChild(document.createElement('p')); message.textContent = 'てすとてすとてすと。'; var button = dialog.appendChild(document.createElement('but…
var nextWords = ['次', 'Next', '>', '>>', '»'].map(function(i)'contains(text(),"' + i + '")').join(' or '); var nextXPath = <> //link[@rel="next"] | //a[{nextWords}] .toString(); var nextLink = document.evaluate(nextXPath, document, n…
try { var test = { foo: 1 }; eval('foo', test) } catch(e) { var _eval = eval; eval = function(str, obj) { with(obj) { return _eval(str); } } } var foo={a:'ok'}; eval('a',foo);//"ok"
今まで作ったスクリプトをjavascripter - Userscripts.orgにアップロードしました。スクリプトもアップデートしてます。 AutoPageLoader for Greasemonkey AutoPagerizeクローン。次ページの自動継ぎ足し、GoogleImagesでも動く。 dragLikeAdobeReader for G…
追記:復活したみたいです。Twitter / Constellation: http://del.icio.us/faviconを見て知ったのだけど、faviconが403になってる。 復活するまで下のようなスクリプトを入れておくと精神衛生上よろしい気がする。 // ==UserScript== // @name del.icio.us f…