2010-11-21〜22日 JavaScript関連つぶやきまとめ

やっぱり、IE6 と IE7 はサポート対象外にするのが合理的か。 IE8 以上をターゲットにすると、getter / setter が使えるから、それを主軸にライブラリのI/Fを考え直したほうが良いものができそうだ
http://twitter.com/#!/uupaa/status/6403080144822272


IE6〜IE8までの "a,b,".split(",").join() == "a,b,".split(/,/).join() 問題を回避するために、特殊なことやってる箇所に心あたりがある…
http://twitter.com/#!/uupaa/status/6399170466291712


IE9pp6ではIE6〜IE8までかたくなに修正されなかった、String#split()の正規表現バグもが修正されている。IE8までは "a,b,".split(",").join() == "a,b,".split(/,/).join() はfalseだがIE9からはtrue
http://twitter.com/#!/uupaa/status/6398147991441408


http://bit.ly/9uuoqF IE9 では"\v" === "v" をfalse として評価されるようにしたのでよろしく。 だそうです
http://twitter.com/#!/uupaa/status/6395108144455680


MSDN日本語版って、IE6.0相当で更新終わってるね。IE9βどころか、IE7の情報もまともじゃない
http://twitter.com/#!/uupaa/status/6391319874248704


JScriptで最も便利な機能は? と聞かれたら、 document.uniqueID だと思う。 uniqueID は IEの判別, リロードの判別, ノードを一意に特定する機能を兼ね備えた愛すべき奴です
http://twitter.com/#!/uupaa/status/6382971850330112


IE6〜IE9 では、 document.uniqueID がページのリロードに対してユニークな値(文字列)を返すため、リロードが発生したかどうかを判別することができる
http://twitter.com/#!/uupaa/status/6381633422757888


Near Future / Next Feature http://html5-demos.appspot.com/static/html5storage/
http://twitter.com/#!/uupaa/status/6379982154629120


最近の closure compiler は [,] != 0 で IE6〜IE8 を判定させてくれないので(Syntaxエラー扱い)、ちょっと困る時がある(エラーにするのが正しいんだけど)
http://twitter.com/#!/uupaa/status/6376233210216448


uupaa.js 0.9 では window と document が無くても動くようにしよう
http://twitter.com/#!/uupaa/status/6247627075100672


jQuery指向な互換APIと、node.js指向性を持ち、Prototypeが拡張がON/OFFできればデラ便利ですね
http://twitter.com/#!/uupaa/status/6237217571737600


uupaa.js version 0.9 の方針が決まりました
http://twitter.com/#!/uupaa/status/6236339435479041


uupaa.js も DOM指向から抜け出し、流行りのライブラリと互換性のあるAPIを備え、ユーザが望めばString#xxx等も提供し、Node.jsと親和性が高く、余計なコードは抹殺する仕組みを備えた、ちょっ速なライブラリを目指せばいいのか
http://twitter.com/#!/uupaa/status/6235592543178752


WebKitは、event.target に TEXT_NODE 紛れ込むから、正しくは event.target.parentNode みなきゃだけど
http://twitter.com/#!/uupaa/status/6026217224409088

@moguonyanko function handleEvent(event) { setTimeout(function() { event.target.innerText = "..." }, 0); } な一人時間差じゃダメ?
http://twitter.com/#!/uupaa/status/6025739388325888


あと半年もすればIE7が12%→6%, IE6が7%→3%
http://twitter.com/#!/uupaa/status/6012680338939904


@openspc たしかに iOS3.x 系は audio も video も未完成ですね。私も、iOS4.2がすごい勢いで普及してくれることを祈ってたりします
http://twitter.com/#!/uupaa/status/6005193380466688


IE7を捨て、IE8以上と node.js を意識して API を組んだライブラリが3年後のWinnerだね
http://twitter.com/#!/uupaa/status/6001188172464128


IE9pp6 では Node.innerTextが存在せずdocument.createTextNode("abc").innerTextではなくNode.textContent しかありませんdocument.createTextNode("abc").textContentを使ったほうがよさそうですIE9は下位互換性を捨て、新しいブラウザになろうとしています
http://twitter.com/#!/uupaa/status/6000177840132096

IE9pp6 では、以下の非互換性やバグが修正されていることを確認しました。
IE9に対応する予定がある方は、既存のコードで該当する箇所が無いか見直しをしたほうがいいでしょう。

  • String#split(正規表現)の実装が、ECMAScriptの仕様通りに(他のブラウザと同じ挙動をするように)に是正された
    • IE6〜IE8までとは結果が異なるので、jQueryなどのライブラリを利用している人も影響うけるから気をつけてね
  • 垂直タブ "\v" の扱いが他のブラウザと同じように是正されたため、"\v" === "v" で IE を判定しているライブラリを使っている場合は気をつけてね
  • http://twitter.com/#!/uupaa/status/6000177840132096 は、正しくは Node.textContent のサポートが追加され、 document.createTextNode("abc").textContent === "abc" が可能になったという感じです。
    • document.createTextNode("abc").innerText は IE8 も IE9pp6 も undefined になります
    • 従来通り、HTMLとして埋めこまれている Node の innerText は Node.innerText でも取得可能です。