javascript

javascriptで連想配列にも使えるmap

もらいもの。 function oMap(o,f) { if (o == null) return undefined; var r = new o.constructor; for(var k in o) { r[k] = f(o[k]); }; return r; }

javascriptのforを高速化する

おしえてもらったネタだがメモっておく。 javascriptのfor文を高速化する配列の要素をインクリメントする際にこっちより、 for (var i in array) { array[i]++; }以下の方が速いとのこと。 var i; if (array && (i = array.length)) for (; i--; ) { array[i…

javascriptのhashのためにmap関数を作る(イテレータじゃない)

ArrayにはmapがあるがObjectというかObjectを利用したhashにはmapがない。 そこでhashを返す関数を作ってみた。 mymap(ハッシュ,関数):返値はハッシュ js> mymap=function(hash,funk){var r=new Object();for(k in hash){r[k]=funk(hash[k])};return r} f…

各コマンドの-eオプションをそろえる

.bashrcに以下を書く function gosh(){ if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo "$2">$$.scm;shift 2;`which gosh` $$.scm "$@";rm $$.scm; else rlwrap `which gosh` "$@";fi } function runghc(){ if [ $# -ge 1 ] && [ $1 == '-e' ]; then echo "$…

Fileオブジェクト研究

Dir.glob(/*.txt/)と同じコードは new File(".").list(function(n){return null==/.txt/g.exec(n)?false:true}) File.currentDir.list(function(n){return null==/.txt/g.exec(n)?false:true})ファイルの中身を得る(readAll()は配列でかえってくる模様。標準…

Fileオブジェクトに挑戦

spidermonkeyでread,writeしたい。と言う衝動に負けFileオブジェクト込のjavavascript shell (js)をコンパイルする。まず、http://www.ossp.org/pkg/lib/js/ より、ソースをゲットとりあえずはconfigure ./configure --with-utf8 --with-editline4.0 遊んで…

C言語によるjavascript開発テンプレート

ブックマークレットは開発時に一行で書かなくてはならず、見通しが悪い。 そこで、インデントおよび改行をゆるし、ファイルによりブックマークレットを開発及び管理するために開発されたプログラムがこれ。 使用方法 先頭にmkbkmkを記述したnow.cgiを作成す…

全角を半角に変換

対象文字列.replace(/([0-9a-zA-Z])/g,function (match_str){return String.fromCharCode(match_str.charCodeAt(0) - 65248)})

cgiによる開発テンプレート

一行でブックマークレット書くのがいまいちつらいので以下のようなものを作ってみた。 インデントや改行込みでブックマークレットを作った後、cgiが改行とインデントを削除してアンカーを作成する。 #!/usr/bin/ruby title="選択領域数字半角化" program=<<'…

時間をtextareaに貼り付ける。

やられた。getMonthは0-11で返ってくるんだ。(http://www.scollabo.com/banban/jsindex/sample/sample_081.html) 平成の日付 javascript:(function(){n=(t=document.getElementsByTagName('textarea')[0]).selectionStart;v=t.value;s=t.scrollTop;t.value=(…

テキストエリアの文字列を置換する

以前もらったもの javascript: var f, i, form; var a, b, n; n=0; a=prompt('Replace regexp...'); if (a != null) b=prompt('...with', a); if (a != null && b != null) { for (f=0; f

最初のテキストエリアのカーソル位置に日付を挿入するブックマークレット

javascript:(function(){n=(t=document.getElementsByTagName('textarea')[0]).selectionStart;v=t.value;s=t.scrollTop;t.value=(v.substr(0,n)+(f=[(d=new Date()).getFullYear(),d.getMonth(),d.getDate()].join("/"))+v.substr(n,v.length));t.scrollTop…

form F1のtextarea T1のカーソル位置に時間を埋め込む(FF専用)

練習用に作った。まだアクティブな(もしくはフォーカスのある)テキストエリアを取得する方法がわからない。 javascript:(function(){dt=new Date();d=document.F1.T1;n=d.selectionStart;v=d.value;t=d.scrollTop;d.value=(v.substr(0,n)+(s=dt.getFullYea…

再帰無名関数

javascriptで再帰無名関数を使う為にはarguments.callee()だ。 js> (function(a){return a!=0?a+arguments.callee(a-1):0})(5) 15 参考URL http://d.hatena.ne.jp/amachang/20061204/1165192033

sprintf("%04d",12)と同じ動きをする。

ちょっとはまったのでメモっておく js> ("0000"+12).substr(-4) 0012こんな関数まで作りそうになった自分が恥ずかしい js> (function(a){b=a.toString();return ("0000"+b).substr(4-b.length,4)})(12) 0012

λ式相当?

以下の二つは等価 gosh> (lambda () (print "OK")) #<closure #f> gosh> ((lambda () (print "OK"))) OK #<undef> gosh>js> function(){print("OK")} function () { print("OK"); } js> (function(){print("OK")})(); OKクラス js> function A(){this.a=1;this.b=function(){pri</undef></closure>…

HTML全部をpostする

javascript:(function(){d=document.getElementsByTagName(&#39;html&#39;)[0].innerHTML; t=&#39;<form name=f accept-charset=EUC-JP method=post action=&#39;ターゲットのURL&#39;><textarea name=n>&#39;+d+&#39;</textarea><input type=submit></form>&#39;; document.write(t); document.f.submit()})();または javascript:{ …

今見ているhtmlを任意のページにpostする

以下をブックマークに追加する javascript:{ d=document.body.innerHTML; t=&#39;<form name=f accept-charset=EUC-JP method=post action="対象のURL"><textarea name=n>&#39;+d+&#39;</textarea><input type=submit></form>&#39;; document.write(t); document.f.submit() }

javascript集

http://www.suepon.com/jsm/script/jsm30.html

メニューを作ってみる

http://n9d.n9d.com/ddd/menu.html どうもメニューを作る位置が問題。

アンカーをpostメソッドに変換する

/cgi-bin/clickpost.cgi(カロ作) #!/usr/bin/php4 <script> function foo(s){ document.f.a.value=s; document.f.submit(); } </script> <form name=f method=post> <input name=a type=hidden> </form> <a href=&#39;javascript:foo("data1")&#39;>test1</a><br>

POSTメソッドとjavascriptでできたページの解析方法

=POSTするページをローカルのapacheで見える場所にコピー =methodをpostからgetに書き変える =ブラウザに欲しいパラメータを入れてsubmitする。 =アドレスバーの引数(?以下)がポストすべきなデータ =以下のrubyスクリプトにかませば終了 #!/usr/bin/ruby -…