タグ

JavaScriptとJavascriptに関するmoozのブックマーク (809)

  • JavaScript の Iterator、関数とコンストラクタ: Days on the Moon

    オンライン勉強会の Jetpack 入門に参加して Jetpack のソースコードを読んでいたら、Iterator を関数として呼び出したときとコンストラクタとして呼び出したときとでは挙動が違うということを知りました。 Iterator の動作 オブジェクト o に対して for-in 文、for-each-in 文を実行したとき、及び Iterator 関数、Iterator コンストラクタを呼び出したときの (SpiderMonkey の) 動作は、それぞれ次のようになります。 コード o が __iterator__ メソッドを持つとき o が __iterator__ メソッドを持たないとき for (... in o)

    mooz
    mooz 2010/01/28
    Iterator と new Iterator() の違い。前者は用意された __iterator__ があればそちらを使う。後者は元々の __iterator__ を使う。
  • hCalendar を使って予定を公開しよう! - IT戦記

    はじめに みなさん、こんばんわ! さてさて最近のことですが、 Google の検索結果にイベントや予定へのリンクが表示されるようになりましたね!(まだ、英語版だけですけどね^^;) ASCII.jp:Google、リッチスニペットでイベントの日時や場所表示に対応 以下のような感じで表示されるみたいです! ウェブページの中に書かれた「予定」や「イベント」などを Google 先生が理解して表示しているんですね! この予定やイベントはどうやって探してるの? Google は hCalendar という形式のデータを読んで、予定やイベントを探しているようです。 というわけで、今日はこの Google が使っている hCalendar というものが「どういうもので」「どうやって活用すればいいか」を実例を交えながら紹介したいと思います。 hCalendar って何? hCalendar とは「カレン

    hCalendar を使って予定を公開しよう! - IT戦記
    mooz
    mooz 2010/01/28
    hCalendar とは「HTML 上にカレンダーに登録出来るような情報(イベントなど)を HTML 上に置くときはこういう書き方に揃えようよ!」という提案です。
  • Firefox, GoogleChromeのJavaScript prototype汚染話

    mooz @stillpedant あ、 Google Toolbar や Web Developer などでおかしくなる問題、原因がわかったっ。こいつら prototype 汚染してるっぽい。 Iterator(obj) として for 回したら変なプロパティ大量に出てきて恐ろしやー。 2010-01-27 22:16:35

    Firefox, GoogleChromeのJavaScript prototype汚染話
    mooz
    mooz 2010/01/27
    綺麗にまとまってるなあ。
  • ajaxzip3 - Google Code

    Code Archive Skip to content Google About Google Privacy Terms

    mooz
    mooz 2010/01/27
    便利だ。
  • Annotating JavaScript for the Closure Compiler - Closure Compiler - Google Code

    Documentation Closure Compiler Service UI Getting Started Closure Compiler Service API Getting Started Tutorials Communicating with the API Compressing Files with the API API Reference Closure Compiler Application Getting Started Closure Inspector Inspector Guide Inspector and Caja Advanced Topics and Reference Compilation Levels Advanced Compilation Annotating JavaScript for the Compiler Error an

    mooz
    mooz 2010/01/27
    JSDoc の書き方。本家よりまとまっていたり。
  • 拡張子に対応したアイコンの取得 - 技術メモ帳

    Firefox限定だが、 moz-icon://.拡張子?size=アイコンのサイズ で、拡張子に対応したアイコンを取得できるらしい。 そこでためしに、URLが html, pdf, zip で終わってるリンクに それに対応したアイコン画像を付加する Greasemonkey を作ってみた。 すごいリソース無駄遣いしてるが、これは後でリファクタリングする。 add_mozicon.user.js // ==UserScript== // @name add_mozicon // @include http://* // ==/UserScript== var extensions = [ 'html', 'pdf', 'zip' ]; var items = document.getElementsByTagName("a"); for(var i=0; i<items.length; i

    mooz
    mooz 2010/01/25
    moz-icon://.ext?size=16px とか
  • keysnail japanese · mooz/keysnail Wiki · GitHub

    トップ 使い方 Tips カスタマイズ フック プラグインを入手 プラグインを書く For Vim users, there is Vimperator. For Emacs users, there is KeySnail. インストール 以下のリンクより,お使いの環境に対応した keysnail.xpi ファイルをダウンロードして下さい。 Firefox Thunderbird ダウンロードした keysnail.xpi を Firefox / Thunderbird へドラッグアンドドロップすれば、インストールが行えます。 コマンドラインからインストールを行いたい場合は、次のようにすれば良いでしょう。 $ wget https://github.com/mooz/keysnail/raw/master/keysnail.xpi $ firefox keysnail.xpi News

    keysnail japanese · mooz/keysnail Wiki · GitHub
    mooz
    mooz 2010/01/25
    Hatebnail のデモ
  • Webteko 第11回で Web Workers について発表した - mollifier delta blog

    1/23(土)に神戸で Webteko(ウェブテコ)第11回が開催された(告知ページ) 今回のテーマは「HTML5 と CSS3」ということで、僕も Web Workers について発表してきた。 発表内容 Try WebworkersView more documents from H M. サンプルコード デモとして、バックグラウンドで足し算を行う JavaScript コードを紹介した。あと、1%分完了するたびに進捗状況を表示してる。計算してる途中でもブラウザが固まらないってのがポイント。 まずこれが HTML ファイル。入力ボックス、ボタン、結果表示欄があるだけ。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Web Workers を使って足し算する</title> <script type="applic

    Webteko 第11回で Web Workers について発表した - mollifier delta blog
    mooz
    mooz 2010/01/24
    Web Workers について
  • Google日本語入力がやっているデータ収集方法まとめ - 貳佰伍拾陸夜日記

    Web上の膨大な情報を使ってかな漢字変換を行なうGoogle日本語入力(のベータ版)がリリースされた. Web上の膨大な情報を機械的に取り扱うのはGoogleのお家芸だけれど, それだけでは変換された後の文字列しか用意できない. どうやって変換前の文字列を集めるのか, それをどうやって変換後の文字列と結びつけるのかという点については疑問が残る. この点に関して, 以下のような指摘がある. どこから集めたのか考えてみたんですが、たぶん(たぶん、ですよ。あくまで私の憶測・邪推ね)、Google サジェストを提供する中で、ユーザーがかな漢字変換をしている途中の読みデータと、かな漢字変換を確定した後の漢字データを集めてきたのではないかと思います。 ぶっこ抜き? [Google日本語入力の功罪] Googleサジェストが変換途中の文字列からも候補を提示できるようにするために, 毎秒100回入力エリア

    Google日本語入力がやっているデータ収集方法まとめ - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/01/24
    ユーザが IME ON の状態で入力している文字列を随時取得する。タイマー回す。
  • XPCNativeWrapperとunsafeWindowの間でデータを送受信する | へびにっき

    XPCNativeWrapperの外側でスクリプトを評価する関数。Firebugも同じことをしている。unsafeWindowを触らないので安全。 function evalInPage(fun) { location.href = "javascript:void (" + fun + ")()"; } SmartLDR更新 – 素人がプログラミングを勉強するブログ これは面白い!Function.prototype.toString が関数のソースコードを返すことを利用した、巧妙にして簡潔なハック。 次のように引数を渡せるように改良すればさらに強力になる(引数に渡せるのはJSON化可能な値のみ)。 function evalInPage(func, args) { var argStr = JSON.stringify(args || []); location.href = "jav

    mooz
    mooz 2010/01/24
    XPCNativeWrapper と unsafeWindow 間での通信。 location.href= ... の方法を応用し、イベント作って通信。 MessageEvent 。
  • ウェブページから NG ワードを消すグリースモンキー - IT戦記

    id:otsune さんの RT 論を読んで あと「公式RTだろうが非公式だろうが返信だろうが何でもいいけど、オレはタイムラインに◯◯の文字が見えるのが嫌なんだ」って要望は3年前から存在する。オレの持論は何十回も言ってるけど「すべてのブラウザはNGワード機能を搭載すべき」 @otsuneさんのRT論 - Togetter なるほどー、たしかしー というわけで グリースモンキーを書いて見たよ! こんな感じです 良かったら使ってください! NG ワードのところに好きな単語を書き込むと、その単語を含む要素が消滅します!*1 // ==UserScript== // @name NG Filter! // @namespace http://d.hatena.ne.jp/amachang/ // @include http://* // ==/UserScript== (function() {

    ウェブページから NG ワードを消すグリースモンキー - IT戦記
    mooz
    mooz 2010/01/24
    DOM ノードが変更されたときに NG ワードを含むコンテンツの中身を消去。
  • imageLoaderをVimperatorから使う+α - 貳佰伍拾陸夜日記

    d:id:tomo_snowbug:20090619:1245430454 のimageLoaderというGreasemonkeyスクリプトがなかなか素晴しいので, Vimperatorから使えるようにするついでに機能拡張してみた. 拡張された機能 表示/選択している画像をキーやボタン一つでローカルファイルに保存する 画像直リンクでない場合(fotolife等)もリンク先に大きな画像があれば取ってくる 画像直リンクではないがリンクURIから画像URIを推測できる場合(Google画像検索等)にURIフィルタでリンクを置き換える imageLoaderの先読みが進み次第スライドショーを自動的に開始 スライドショーに移るときにVimperatorのキー操作を無効化(自動的にC-zする) 設定パネルのスペルミスを修正 保存先は設定パネルで設定/追加可能. URIフィルタはprefs.jsにGre

    imageLoaderをVimperatorから使う+α - 貳佰伍拾陸夜日記
    mooz
    mooz 2010/01/24
    ImageLoader を強化する Vimperator プラグイン。特権をいいことにローカルファイルへ保存しまくる。
  • JavaScript speedups in Firefox 3.6 ✩ hacks.mozilla.org

    This post was written by David Mandelin who works on Mozilla’s JavaScript team. Firefox 3.5 introduced TraceMonkey, our new JavaScript engine that traces loops and JIT compiles them to native (x86/ARM) code. Many JavaScript programs ran 3-4x faster in TraceMonkey compared to Firefox 3. (See our previous article for technical details.) For JavaScript performance in Firefox 3.6, we focused on the ar

    JavaScript speedups in Firefox 3.6 ✩ hacks.mozilla.org
    mooz
    mooz 2010/01/23
    GC の改善, JIT コンパイル. Trace の対象を広げる.
  • sa

    nsIDocumentEncoder in Firefox 3.5 Latest topics > テキストリンクがFirefox 3で速くなった - outsider reflex これ便利、DOMをプレーンな文字列とかHTML文字列に変える。 XMLSerializer + XMLを使わないでもOutputFormattedで整形できる。 OutputAbsoluteLinks使えば、相対リンクが全部解決されてる。 テキストに変換する場合は、script要素の中の文字列はスキップして、目に見える文字に近い印象で取得できる。 ちょうど選択範囲をコピーした時みたいに。

    mooz
    mooz 2010/01/22
    nsIDocumentEncoder DOMをプレーンな文字列とかHTML文字列に変える
  • HTML5のcanvasでテトリス - 素人がプログラミングを勉強していたブログ

    canvas thisに置いた。 JavaScriptの部分は下記の通りで、テトリスの画面の二次元配列とブロックの二次元配列を保存して、画面の上にブロックを重ねるように描画するというごく普通の実装。 画面の端を壁にしておくことで、はみだしチェックなどを省くことができる。番兵と呼ばれるテクニックで、よく使われる。 だいたいの部分の作成は1時間くらいで終わって、ブロックが落ちてくる+ブロックを動かせる/回転させられるようにするところまでで1時間30分。 あとは、描画まわりのバグ取りとブロックに色をつけるところ、次のブロックを左上に表示、ブロックの回転の調整(最初はブロックの左上を軸に回転していたが中央に軸をもってくるように+回転済みのブロックを保持しておく)を、リファクタリングをしつつやった。 全体で3時間くらいかかった。 どこかの動画で1時間でテトリスを作っていたのを見たので、自分でも作って

    HTML5のcanvasでテトリス - 素人がプログラミングを勉強していたブログ
    mooz
    mooz 2010/01/21
    描画部分を canvas で。
  • Chrome Dirty Hacks 01: fc2 image for LDR - 枕を欹てて聴く

    続ける予定は未定ですが01と銘打ちました, ChromeのDirtyなHackをお届けするChrome Dirty Hacks. 今回のレシピは, LDR上でfc2の画像を表示する です. 注意 Chrome Dirty Hacksはたまーに見つかるあんなのやこんなので, Chromeで実用性皆無のdirtyなhackを! というもので, 実用性位ではありません. 最近ちょっと忙しいのですが, せっかくろくでもないことを思いついたので, 試しておかなくてはと... 結果 あら不思議! fc2のblogで著名なネタ帳さんのページを例としてあげさせていただきました. LDRの記事未読件数とかが破産寸前になってて恥ずかしいので隠しました. 成果物のChrome拡張はここにおいておきます. ちなみにsupportは予定していません... fc24ldr.crx 内部的概要 fc2の画像はfc2以

    Chrome Dirty Hacks 01: fc2 image for LDR - 枕を欹てて聴く
    mooz
    mooz 2010/01/19
    ネタと言いながらすごいことをやっている。 Chrome の background から XHR で img ダウンロードして base64 変換して src に daraURI を突っ込む。
  • 棒倒し法による自動生成の迷路 - 素人がプログラミングを勉強していたブログ

    JavaScriptによる自動生成迷路に置いた。 function rand(n) { return Math.floor(Math.random() * n); } const width = 33, height = 33; var wall = (1 << (width - 2)) - 1 << 1; var table = [1 << (width - 2)]; var stripe = 0; var i, j; for (i = 1; i < width; i += 2) { stripe |= 1 << i; } for (i = 1; i < height - 1; i++) { table[i] = i & 1 ? wall : stripe; } table[height - 1] = 2; const top = 0, right = 1, bottom = 2, le

    棒倒し法による自動生成の迷路 - 素人がプログラミングを勉強していたブログ
    mooz
    mooz 2010/01/17
    迷路の自動生成。
  • CSS で画像を空間に散らしてみた - zyxwvの日記

    起動時 拡大! CSS でなんか作ってみた第二弾。画像を3次元空間に配置してぐるぐるさせることができます。例によって対応ブラウザは webkit 系だけです。-webkit-* を -moz-* にかえれば Firefox でもきっと動きます。 デモ: http://www.agusa.i.is.nagoya-u.ac.jp/person/shimo/3d/3d.html マウスに追従して視線が動きます。クリックしながらマウスを動かすと、視点そのものが移動します。マウスホイールで拡大縮小ができます。 最新の Webkit で動作確認。 Safari でも動くみたい。

    CSS で画像を空間に散らしてみた - zyxwvの日記
    mooz
    mooz 2010/01/17
    3 次元空間に画像を散らす。 CSS の transform : preserve-3d を使ってる。
  • Array.concatで配列のクローン(コピー)を作成する - latest log

    JavaScriptで配列のクローンを作成しようとして、悩んでいる方もいらっしゃるようですが、 以下のように、for ループや再帰なコードを手書きする必要はなくて、Array.concat() で配列のクローンは作成できます。 Array.prototype.clone = function(){ return Array.apply(null,this) } Array.prototype.clone = function() { if ( this[0].constructor == Array ) { var ar, n; ar = new Array( this.length ); for ( n = 0; n < ar.length; n++ ) { ar[n] = this[n].clone(); } return ar; } return Array.apply( null,

    Array.concatで配列のクローン(コピー)を作成する - latest log
    mooz
    mooz 2010/01/16
    concat ひとつで<del> deep なコピーも出来てる。</del> (追記: deep では無い) Chrome 4 なら slice の倍速いらしい。
  • ブラウザウィンドウのサムネイルを描画する « Mozilla Developer Street (modest)

    タブカタログ拡張機能のようにWebページのサムネイル画像を表示する拡張機能の多くは、 html:canvas 要素の二次元描画コンテクストの drawWindow メソッドへWebページの window オブジェクトなどを引数で渡してサムネイルの描画を行っています(canvas を使って図形を描く – MDC)。 この drawWindow メソッドの引数にWebページの window オブジェクトではなく、ブラウザウィンドウの ChromeWindow オブジェクトを渡すことで、ブラウザウィンドウのサムネイル画像を描画することも可能です。しかし、以下のようにブラウザタブ内に表示されたWebページまでは描画されず、背景色で塗りつぶされたようになってしまいます。 この問題を解決するには、ブラウザウィンドウのサムネイルの上に、Web ページのサムネイルを重ねて描画する必要がありそうです。ここで

    ブラウザウィンドウのサムネイルを描画する « Mozilla Developer Street (modest)
    mooz
    mooz 2010/01/16
    Canvas にブラウザのサムネイルを描画。