JavaScript

Firefox のみ Rails RJS の Sortableでエラー

sortable_element の引数に:scroll => true を渡すと、Firefoxで以下のエラーが出る。 [Exception... "Could not convert JavaScript argument arg 0 [nsIDOM3Node.compareDocumentPosition]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" locatio…

IE の Range オブジェクトについての質問です。

テキストボックスからフォーカスが外れた際のイベント(jQueryの'focusout'イベントを使ってます)で、選択されていた部分の文字列を取得するという処理をしたいのですが、どうしてもうまく行きません。 以下のJavaScriptのソースコード中、try区の2行目でエラ…

Rails開発のJavaScriptでのクロージャの使いどころ

今までサーバからブラウザサイドのJavaScriptに値を渡すときに、いちいちHTML要素に余分な属性を付加してそこに値を格納し、JavaScript側でそれを取り出すということをしてきた。例えばこんな感じ。 <div id="1" class="content" title="foo" owner="John" active="true">...</div> <div id="2" class="content" title="bar" owner="Pat" active="false">...</div>

jQuery.data について

以下の記事で勉強。 jQuery.dataの使い方 - KAYAC engineers' blog以下のようにjQueryメソッドと追加しておくと、 $.fn.setData = function(key, value){ this.each(function(){ var obj = $.data(this, "name_space") || {}; obj[key] = value; $.data(this…

Cookieのhttponly属性を外す方法

Railsでセッションを作成するとブラウザにCookieが送信される。このCookieが普通にcookiesハッシュで作成したCookieと違うのは、Cookieのhttponly属性がonになって送信されることだ。これがonのCookieは、ブラウザ上のjavascriptで、 document.cookie として…

おお!!配列内包と分割代入でこんなことができるぜ!!

var range = function(n){ var m = n - 1; while(n--){ yield m - n; } } [ [i, j] for each (i in range(4)) for each (j in range(3))]; で簡単に以下の2次元配列をゲトー 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 3,0 3,1 3,2 配列内包についてはわかり始め…

任意のドメインへのリンクをLDRizeするGreasemonkay script を作った。

有りそうなので探したんだけど見つけられなかったんで作ってみました。初のGreasemonkayスクリプト。 http://userscripts.org/scripts/show/41540ドメインと言っているけど実際には href を正規表現でマッチングしているので、任意のURLへのリンクをターゲッ…

js2-modeでyasnippet

yasnippet のスニペットフォルダにjs2-modeというフォルダを追加して、その下にスニペットを追加してみたんだが動かない。試しに手動で yas/minor-modeにしてみると、追加したスニペットの展開が行われるようになった。単純に js2-mode と yas/minor-mode の…

self = this とする時。

これは知ってないとわからないなぁ。なのでメモ。 イベントやタイマー(setIntervalとかsetTimeoutとか)などで呼び出されると、thisは自分のオブジェクトを指すわけではない。 自分のオブジェクトを使いたいときは事前にthisをローカル変数に保存して利用す…

inferior JavaScript mode を発見した。

Rubyのirbと同じ使い勝手でRhinoをあれこれ試せないかとネットを探しまわっていた所、emacs inferior mode for JavaScript をhttp://bryan-kyle.blogspot.com/2008/07/inf-jsel.htmlで発見した。 これまさに、期待していた通りの動作をしてくれる。それもそ…