うならぼ

どうも。

Javascript

ThunderbirdのAPIを叩いてアドレス帳にリストをインポートする

単純にアドレス帳のエントリをインポートするのは標準機能でできたが、リストを取りこむ方法が見つからなかった。数が多く手打ちも面倒だったので、なんとかしてインポートしたい。ここでふたつの可能性を見つけた。 リスト編集画面で メアド→候補が出るまで…

Mastodonで見つけた循環import

Mastodonのフロント側で、あるモジュールの関数において、そのモジュールの依存モジュールが一部読み込まれていないらしい、という問題がありました。こんなエラー。 Uncaught TypeError: Cannot read property 'a' of undefined at Object.configureStore […

Hatena::Let、もしくはES5世代のminifyツール(JavaScript::Squish)でTemplate Literalsを使う

ES2015のTemplate Literals、便利ですねー。プレースホルダの展開といい、改行を含められることといい、"‘をエスケープせずに済むことといい、UserScriptやブックマークレットではとても便利です。 そんな便利な Template Literals ですが、Hatena::Let でそ…

30行でimg要素をダミー画像に置き換える

ダミー画像ごときで外部サービスに依存するのもあれだし、書いた。jQuery使ってるけど使ってないようなもの(?)。メインはcanvasなのでIE9+で動くんじゃないかな。 <img src="" width="160" height="60" alt="バナー"> と書くとこうなる。 いつもながら似たようなことを考える人はいるわけで、細かく設定したい…

Node.jsがC:hoge.txt形式の相対パスをサポートしてたけど扱いが難しいって話

C:hoge.txt は絶対パスでしょうか。答えはNOです。 これはCドライブのカレントディレクトリに対する相対パスを表します。絶対パスならドライブ文字、コロンに続いてバックスラッシュを付けなければなりません。 Naming Files, Paths, and Namespaces (Window…

スマホのブックマークレット登録にdataURIを使う

ブックマークレットをブックマークするときに、PCのブラウザだったらjavascript:なリンクもそのままブックマークできることが多いですが、スマホはそうではないです。 ないので、textareaで表示してコピペさせるとか <textarea>javascript:alert('JBP Yeah!')</textarea> 適当なUR…

UserScript楽しいって話(作例つき)

GreaseMonkeyって昔流行ったあれでしょ?みたいな印象を持ってたんですが、あれおもしろいですね。便利ですね。 すっかりChrome使いなのでTampermonkeyで動作確認しています。 便利な道具 ヒアドキュメント UserScript界隈では <> という形式が使われていた…

JSで1..Nの総和を計算する、もしくは要素数Nの配列を作る

ask.fm Haskellで書いて短いのはともかく、JSのコードがなんとも。 探してみると Array.prototype.reduce() があった。ちゃんと要素のインデックスも渡してくれるので、これを順に足しこめばいける。 あとは要素数Nの配列をどうするか。Array(100) とすればu…

Named Function Expression が作るスコープ

ES6のclassがeslintのno-shadowルールに引っかかるという話を調べる過程で、eslintのスコープ解析に使われているescapeの動きを見ていたら面白いことに気づいた。ブラウザで動くデモが便利。 var hoge = function piyo(){}; これだけのコードでスコープが3つ…