IE8とIE9pp の非互換性(event)

IE9正式版ではなく IE9pp(IE9 Platform Preview) や IE9pp2 の現状について記載しています。IE9ppがDOMの仕様に合わせたため、IE8までとは互換性がなくなっている部分をちょこちょこ書いていきます。 IE9pp の event イベントハンドラが受け取る event オブ…

event.offsetX と offsetY の互換性について

IE9正式版ではなく IE9pp(IE9 Platform Preview) の現状について記載しています。event.offsetX/Y や event.layerX/Y から相対座標を取得できますが、DOM Lv0 のため仕様が無く、互換性もありません。今日はそれらの非互換性について調べてみました。event.o…

140文字以内でパスワード丸見え

パスワードを忘れちゃった時などに。 Firefox3.5+, Safari4+, Google Chrome, Opera10.10+ で動きます。IE9でも動くかもしれません 76byte javascript:document.querySelector("input[type=password]").type="text";void 0

CookPadの開発コンテスト24に参加したよ

http://info.cookpad.com/24contest http://info.cookpad.com/24contest_award応募して、落選したよ。 審査はすごく大変だと思うけど、またされずに結果がすぐ分かるのはステキだね。 覚えてること 「応募するからには、他の参加者もシステム的な要素を取り…

String[indexer]をIE6,IE7でも使いたい!

js IE

このエントリの趣旨は、「Base64的な処理だったら最初から Array で用意すればいいのに…」 じゃなくて、「どーしても、ここは String[indexer] が使いたいんじゃー」 ってケースを想定して読んでください。ちょっと例が悪かったです。近頃の JavaScript は、…

HTML5 Audio デモ

HTML5 で、ブラウザの機能として「音」を再生する仕様が追加されました 音を再生するには、<audio src="..." autoplay> を HTML に埋め込むか、new Audio(src).play() とします。仕様 ⇒ http://www.w3.org/TR/html5/video.html クロスブラウザ化する上での問題は2つ 1. 古いブラウザ向</audio>…

140文字以内で DOMContentLoaded

DOM構築完了またはそれ相当のタイミングで (どこかで定義されている)関数A をコールバックします。 function Z(){try{(new Image).doScroll();A()}catch(e){setTimeout(Z,0)}} +[1,]?document.addEventListener("DOMContentLoaded",A,!1):Z() 130byteで驚き…

uuStorage.js

uuStorage.js は、HTML5 の Client Side Storage (WebStorage) のフォールバックな実装です。http://uupaa-js-spinoff.googlecode.com/svn/trunk/uuStorage.js/README.htm中身は、以下のシングルトンなクラスで構成されてます。 Storage (Storage auto detec…

mousemove + elementFromPoint でマウスカーソルが示すノードを取得

mousemove と elementFromPoint を使うと、マウスカーソル直下のノードを取得できます。 elementFromPoint のサポート状況 http://www.quirksmode.org/dom/w3c_cssom.html#t20 デモ http://pigs.sourceforge.jp/blog/20100401/test/uu.Class.ElementFromPoin…

Google Chrome 3 をサポートブラウザからはずします。

以下の理由から、JavaScriptライブラリで、Google Chrome3 をサポートする必要はなくなったと考えます。 Google Chrome2 や3用のインストーラーを使うと、Chrome3 がインストールされます。 Chrome3 を起動していると、裏で Chrome4.1 がダウンロードされて…

ECMAScript-262 5th Edition(ES5) 予約語一覧 と その仲間達

js

ES5 の予約語は以下の4種類 Keyword FutureReservedWord NullLiteral null BooleanLiteral false true Keyword 以下のトークンは、Identifiers には使用できません。 debugger は ES5 で FutureReservedWord から Keyword に昇格しました。 break do instanc…

IE9 で

IE9 を含む様々なブラウザで <audio> や window.Audio の機能の一部を利用できるようにしてみました。Silverlight3+ がインストールされている、Firefox3.0, Firefox3.5+, IE8, IE9, Google Chrome3+, Safari4+ で動いてます。 # そのうち、Flash でも動作するよう</audio>…

uuCanvas.js version 2.03 release

HTML5 Canvas を IE で使えるようになるライブラリ uuCanvas.js の version 2.03 をリリースしました。http://code.google.com/p/uupaa-js-spinoff/今回は Flash backend で Pixel API をサポートしました。これらを使うとドットにアクセスできます。 ctx.cr…

canvas 互換機能の bugfix

uupaa.js コードリード用のエントリです。興味が無い方は読み飛ばしてください。 VML backend で ctx.drawImage(image) + 不透明度(globalAlpha) を有効にしました(条件あり) <vml:image> は opacity 属性が機能しません。そのため、<vml:image> ではなく、<vml:shape> <v:fill opacity="..." src="..." /> </v:shape> を使うことで、不透明…

遅いPCで、IE8とIE9を並べて動かしてみた

IE9

昨日、「事実を示せ、数値で示せ、動画を提出しろ、フェアじゃないのは uupaa のほうだ」とご指摘がありました。感覚的なものを数値化するのは、ちょっとハードル高いので、IE8 と IE9 を並べ、「いつものデモ」を動かした様子を動画にしてみました。http://…

IE9 preview - JavaScript Side

野薔薇を守るトゲのような表現を改め、春のたおやかな小川のように、夏の涼しい木漏れ日のようにやわらかくしてみました。IE9 preview 版でましたね → http://ietestdrive.com/動作させるには、Windows VISTA SP2 + IE8 または Windows 7 が必要です。快適に…

uuCanvas.js version 2.0 release

今日は「RIP IE6 day」らしいので、uuCanvas.js version 2.0 をリリースしました。http://code.google.com/p/uupaa-js-spinoff/downloads/list 試食できます こちらにコピーを上げておきました。http://pigs.sourceforge.jp/blog/20100303/uuCanvas2.js/READ…

TextAPI と Shadow API を仮実装

Flashバックエンドに、TextAPI と Shadow API の仮実装を入れました。globalCompositeOperation も幾つか実装しています。 まだ調整が甘くて、 影が切れることがある textAlign 未実装実装済 利用できないフォントが指定されると、Times New Roman が使われ…

メソッドとして関数を呼んだ場合の this の値

js

今日は、うっかり忘れがちな「メソッド内の this が何を示すか」を復習するついでに、脳内ダンプしてみます。C++ の this には、 「this(ポインタ)は メソッドの親オブジェクトを示す」 「メソッド内では、 this->hoge() と hoge() は同じ意味になる。thisは…

Canvas on Flashでアニメーション

Flashバックエンドの実装とbugfixもいい感じに進んでます。残すは clip() globalCompositeOperation ShadowAPI TextAPI PixelAPI toDataURL(), getImageData() な感じです。 アニメーションデモ 今までは派手目なデモの紹介を控えてきましたが、そろそろ頃合…

資料追加

uupaa.js の設定方法について、スライドを作成しました。http://handsout.jp/slide/2341

Flashモードにベジェ曲線と画像描画のサポートを追加

ctx.bezierCurveTo(), ctx.quadraticCurveTo(), ctx.drawImage() を実装しました。http://pigs.sourceforge.jp/blog/20100219/demo/ Silverlight, VML, Flash の各モードで、画像の拡大/縮小方法が異なるため、並べてみるとなかなか面白い事になっています。

Canvasをレンダリングする3つのモード

タイトル変更しました今のところこんな感じです。Flashモードはアニメーションが高速に動作するようになりました。 http://pigs.sourceforge.jp/blog/20100217/demo/ (IEや他のブラウザで見てね)今日は「uupaa.js が実装している <canvas> をエミュレートする三つの</canvas>…

canvasをより速く(Flashもサポート)-Take4

このエントリは canvasをより速く(Flashもサポート) - latest log や canvasをより速く(Flashもサポート)-Take3 - latest log の続きです。今日も、Flashモードのレンダリングをちょっと速くしました。 送信部分の高速化 修正前 var _stack = []; var _lockS…

canvasをより速く(Flashもサポート)-Take3

latest log の続きですFlashモードのレンダリング速度をさらに改善しました。fpsが半分ぐらいに落ち込む問題も解決できたようです。 なにをしたか ExternalInterface のjs側のコードを要約し CallFunction() だけにする事で、最適化していた(つもりだった)の…

canvasをより速く(Flashもサポート)-Take2

latest log の続きですFlashモードのレンダリングを速くしてみました。boostも出来ます。boostすると、25fps → 60fps ぐらいに加速します。 AutoDetect Silverlight → Flash → VML 順にバックエンドを探索 Flash 優先 Flash → Silverlight → VML 順にバック…

canvasをより速く(Flashもサポート)

追記 2010-02-13: Flash モードを最新に差し替えました。boostも出来ます。 Flash 優先 Flash → Silverlight → VML 順にバックエンドを探索 本文 uupaa.js には uuCanvas.js のコードが入ってましたが、色々と書き直して、またちょっと速くなりました。 また…

Opera10.50でargumentsの挙動が修正されている

Opera10.10までは arguments instanceof Array → true Object.prototype.toString.call(arguments) → "[object Object]" Opera10.50からは arguments instanceof Array → false Object.prototype.toString.call(arguments) → "[object Object]" になっている…

Firefoxのin演算子がモッサリなので何とかしてみた

今日は「Firefox3.5+で、配列に対してin演算子を使うと、Firefox3に比べ5〜10倍モッサリする」という困った現象を、何とかする方法をご紹介します。 Firefox3 33 Firefox3.6 157 Firefox3.7a1pre 96 <body onload="bench()"><script> function bench() { var pure = [0, 1, 2, 3, 4, 5, 6, 7</body>…

uupaa.js 基礎知識なんちゃってマスター

uupaa.js 0.7 の概要を、1分でざざーっと分かるように書きました。 これ自体10分で書いてるので、ノープラン・ノーチェックでお届けします。 uupaa.js のビルド uupaa.js というファイルはありません。 必要な機能を組み合わせ、ユーザがビルドして作ります…