JavaScript

FirefoxでUser-Agentを変えるとき必須の拡張

FirefoxにはUser-Agentを切り替える拡張がいっぱいありますね。本体の開発ツールに「レスポンシブビュー」なんてあるので、あとは拡張でUA切り替えを使えば、かなりいい線でスマートフォンの真似ができそうです。でも...けっこう多くのUA切り替え拡張で、サ…

JQueryでイベントブロッキング

前回の jQueryで一回だけイベント - なんたらノート 第二期 でちょっとツメが甘かったので、もうちょっと具体的に言うと、ということで、イベントブロッキングを考えます。たとえば、ユーザのクリックによって、アニメーションエフェクトが起こったとき、同…

jQueryで一回だけイベント

jQueryで一回だけクリックできる(または二回目以降別のハンドラに切り替わる)ボタンを作りたい場合、もっとも簡単な方法はこんな感じじゃないかなという話です。まずは、ありがちな方法。 var oneshot = function(){ alert('oneshot'); $('button').unbind('…

jQueryにreduceがなかったので書いた

jQueryには、普通の配列にも使えるeachやmapがあるのですが、残念なことに、畳み込み演算できるreduceがありません。というわけで、こんなことしました。 $.reduce = function(list, func, init){ var r = init; for(var i = 0; i < list.length; i++) { if(…

エルビスよ、aかbかcかdから肯定値を取り出せ

新しいPHPとかGroovyとか次のJavaとか、三項演算子の省略でElvis演算子(?:)なるものがあるそうで、どのぐらいおいしいのかを考えました。エルビス演算子へのニーズって、三項演算子(cond ? a : b)はやっぱり評価されるべきものだよね、ってことを意味してる…

JavaScriptにも@importを

JavaScriptにも、CSSのような@importが欲しい。ってとき、多くの場合はscriptタグ を document.write するんだけど、相対パスの基準ディレクトリが問題になる。CSSから他のファイルを参照するときは、そのCSSファイルのあるディレクトリが相対パスの基準にな…

GroovyとRhinoのオブジェクト(クロージャも)を相互に変換

Groovy(SwingBuilderでGUIに強く、Javaの既存クラスを素直に使える)で実装されたホストアプリケーションに、スクリプト言語としてJavaScript(Ajaxアプリケーションとコードを共有できる)を組み込むとき、どうせなら両者のクロージャに互換性を持たせようとい…

CSVをちゃんと読む Flash/JavaScript

FlashでCSVファイルを読む必要があったので、使えるものがないかFlashとCSVでググってみたところ… var lines = text.split("\n"); var sheet = []; for(var i = 0; i < lines.length; i++) { sheet.push(line.split(","))); } なんじゃこりゃ。こんな感じの…

jQueryにないJavaScript頻出イデオム

jQueryにAPIが見当たらないので、いろいろと自作しました。JavaScriptでよくやることだと思うのですが、なんでないんだろう? 確実じゃないからサポートしてないのかな。 要素の属性をすべて列挙する function attrs_of(element) { if(element instanceof jQu…

Pythonのselfはなぜ必要かをJavaScriptのthisで考える

あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース が面白すぎた。2位と3位の すべてを式にする lambdaの構文を変える は、同じ願いを別の言い方でしてるような気がした。lambdaにifとforを入れたいをかなえるには、ifとfo…