2008-04-01から1ヶ月間の記事一覧
追記:HatenaStarがちゃんと表示されるようにした。AutoPagerizeに対応するのは難しそうだから見送る。 // ==UserScript== // @name autoUpdate // @namespace http://d.hatena.ne.jp/javascripter/ // @description はてなハイクのエントリーをリロードせず…
document.evaluateやった後が面倒くさすぎる。 Array.prototype.forEach.callとかが使えないから仕方なく作る。勢いでほかの反復メソッドも作る。XPathResult.prototype.every: XPathResult.prototype.every=function(callback,thisObj){ for(var i=0;i
関数を呼び出したとき、その関数がさすthisが引数の一つ目になるってこと。 んで、callの時はcallの引数の二つ目以降に、渡したい引数を一つずつ指定する。 applyの場合は二つ目の引数にいっぺんに渡したい引数を配列で指定する。具体的には console.log( Ar…
// ==UserScript== // @name HaikuAbone // @namespace http://d.hatena.ne.jp/javascripter/ // @description 指定したユーザーを半透明にして目立たなくします。 // @include http://h.hatena.ne.jp/* // ==/UserScript== var users=[ 'user1', 'user2' ]/…
まだよくわかってないんだけど、グローバル空間を汚染せずに、関数を実行するたびに上書きされない変数を作れるもの?なのかな。たとえば、f()するたびにreturnされる値が一ずつ増えるものを作るとき。 var i=0; function f(){ return i++; } f(); f(); ダサ…
ってのはこういうことかな。 function f(){ var foo=new String; return { prev:function(){ return foo.substr(0,foo.length-1); }, next:function(){ return foo+='*'; } } } fizz=f(); console.log(fizz.next()); console.log(fizz.next()); console.log(…
ってこういうこと? function f(a){ return function(b){ return function(c){ console.log(a,b,c); } } } f(3)(2)(1); f(3,2,1)でもできるようにするのは難しいなぁ。あきらめた。参考:カリー化 - Wikipedia
// ==UserScript== // @name 文字数カウント // @namespace http://d.hatena.ne.jp/javascripter/ // @description ハイクのしりとり向け // @include http://h.hatena.ne.jp/* // ==/UserScript== var hits=document.evaluate('//div[@class="body"]',docum…
var pres=Array.slice(document.getElementsByTagName('pre')); pres.forEach( function(pre){ pre.addEventListener('click', function(e){ var textarea=document.createElement('textarea'); textarea.value=pre.textContent; pre.parentNode.replaceChil…
var links=links=Array.slice(document.getElementsByTagName('a')); とか。 Arrayにするとどんないいことがあるかというと、たとえば画像へのリンクをFirebugのコンソールに列挙するときに var links=links=Array.slice(document.getElementsByTagName('a')…
ハマった。 結論から行くと HTMLElement.prototype.$T=function(tagName){ return this.getElementsByTagName(tagName); }; document.$T=function(tagName){ return document.documentElement.$T(tagName); } document.$T('*'); document.body.$T('a'); 見た…
alert( (function(m,n){ if(m%n==0) return(n); m%=n; return arguments.callee(n,m); })(36,8) ); 最大公約数をユークリッドの互助法で求めてalertで表示する。関数の再利用もできなくなるし見づらいしいいことなかった。
argumentsオブジェクトを使えばいいみたい。とりあえず$('id1','id2');みたいにやるとヒットしたidを配列で返してくれる関数つくった。 $=function(){ var hits=[]; for(var i=0;i
keydown,keyup,keypressイベントは起こらないけど、変換途中の文字列もinput要素のvalueには入っているらしい。半角/全角キーを押したときだけではなく、新たに日本語を入力し始めるときも、keyCodeの229が呼ばれる。もしかしたら読み仮名取得とかができるか…
if(document.referrer||window!=window.top||opener){ alert('アドレスバーに直接打ち込んでください') history.back(); }; 無断どこじゃなくてリンク自体禁止する
初めてのJavaScriptとか、JavaScript 第五版とかに書いてあったけど読んだときは意味が分からなかった。 やっと意味が分かった。 var foo=[1,2,3]; foo.forEach(function(s){alert(s)}); は動くけど var foo=document.getElementsByTagName('input'); foo.fo…
こういうのはブラウザでやったほうがいいけど。無駄にCPU食うのはなんだろう。 var scrollLines=3; document.addEventListener('keydown',function(e){ if(e.keyCode==32){//Space window.scrollByLines((!e.shiftKey)?scrollLines:-scrollLines); e.prevent…
var openNew=document.evaluate('//a[@target="_blank"]',document,null,7,null); for(var i=0;i
途中でほかのスクリプトがdocument.titleを変えれるようにがんばった。LDRとかでもちゃんと動く。 var title=document.title; var time,now; setInterval( function(){ time=new Date(); now=' '+time.getHours()+':'+time.getMinutes()+':'+time.getSeconds…
CSSセレクタ版getElementsByTagNameみたいなものを作ったから公開します。document.getElementsBySelector('div.day pre[class="syntax-highlight"]')みたいな感じでやると結果が配列で返ってくる関数です。JQueryの$とか、CSSQueryとかみたいなものです。JQ…
function qw(str){ return str.replace(/^\s+/,'').split(/\s+/); } qw('a b c d e') // =>[a,b,c,d,e] qw(' a b c d e e') // =>[a,b,c,d,e] 使い道ないけど。
javascript:var styleSheets=document.styleSheets; for(var i=0;i
ページが見つかりません | Mozilla Developer Networkとかのプロパティのリンクとか、日本語訳が作られていないものはwikipediaみたいに編集画面に飛ぶようになってるけど、不便だから英語版のページに飛ぶようにする、というGreasemonkeyスクリプト。我なが…
AutoPagerize対応およびコードのブラッシュアップ。(追記が長くなったから先頭のほうに最新版を置いてる) removeKeywords.user.js: // ==UserScript== // @name removeKeywords // @author http://d.hatena.ne.jp/javascripter/ // @namespace http://d.ha…
E4XというXMLをJavaScriptで使うための文法を使えばヒアドキュメントみたいなものができるらしい。 function addStyle(css){ var head=document.getElementsByTagName('head')[0]; var style=document.createElement('style'); style.setAttribute('type','t…
javascript:location.href="view-source:data:"+document.contentType+",<html>"+encodeURI(document.documentElement.innerHTML)+"</html>";void 0; ほぼ完全な形でDOMを見れる。けっこう便利。 javascript:location.href="view-source:data:"+document.contentType+";ch…
addEventListener('offline',function(elem){ oldBody=document.body.innerHTML; document.body.innerHTML="<h1>オンラインにしてちょ。</h1>" },false) addEventListener('online',function(elem){ document.body.innerHTML=oldBody; },false) Firefox3で確認した。2…
はてブとかyoutubeとかニコニコとかを目立たなくする。googleBadList.user.js: // ==UserScript== // @name GoogleBadList // @namespace http://d.hatena.ne.jp/javascripter/ // @description Googleの検索結果から指定したものを目立たなくする // @inclu…
3時間くらいがんばってたけどぜんぜんできなかった。失敗した残骸を残しておく。いつの日かできるようにしてやるー。 function num2kana(n){ var keta=n.toString().length; var taisuu=['','まん','おく','ちょう','けい','がい','じょ','じょう','こう','…
OperaではXHTMLとして解釈できなかった場合、HTMLとして解釈するかどうか選べるのだが、Firefoxではどうにもできないから作った。 前と同じくデータスキームに無理やり流し込んでるからうまくいかないページもあるかもしれない。 UTF-8で保存しないと文字化…