問題

IE10 で attachEvent が廃止された場合に備えましょう

Windows 8 には IE10 が標準搭載されます。これらは早ければ2012年の秋ごろまでにリリースされる予定です。 IE10 ではレガシーな(古い)機能やメソッドが切り捨てられると予告されています → 非推奨の DOM イベントIE10 で attachEvent が廃止されると attach…

DOM Lv0 イベントハンドラ内で media 変数にアクセスできない

IE6〜IE9RC では、 DOM Lv0 イベントハンドラ内では media 変数にアクセスできないようです。謎です。 var media = "(ε・◇・)з はろー"; <input type="button" value="IEだとmedia変数が見えないよ" onclick="alert(media)" />

IE8の開発者ツールのデバッグできなくなるバグをyoutubeに上げました

http://www.youtube.com/watch?v=OXzqRacGR18 # 残念ながら画質は iPhone → youtube 画質です # 野外で取っているので、音声ぼそぼそでごめんなさい IE8の開発者ツールが抱えたままの困ったバグ(古いjsが読み込まれ続ける, 同じファイルが多重ロードされブレ…

return で セミコロンが補完されてしまうのを防ぐ

uupaa.js のビルドツールは、必要な機能のみをビルドすることができます。 //{@mb if (uu.ie) { alert("IE用の特別な処理だよ"); } else { //}@mb alert("IE以外の処理だよ"); //{@mb } //}@mb このコードを、MobileWebKitモード( {@mb から }@mb までを削除…

WebStorageで、ワンライナー IE8, IE9pp3 ブラクラ

localStorage.removeItem() 以外にも、localStorage.setItem(); や localStorage[key] = value; でも落ちるようです(コメント欄参照) <input id="A" type="text" value="" /><script>localStorage.removeItem(A.value)</script> 上記のコードをIE8で実行すると、タブクラッシュ → 復元 → タブクラッシュ → 復元機能…

ワンライナーIE6殺処分(精神的ブラクラ)

<script>document.createStyleSheet().addRule("*>*", "color:red");</script> このようなコードが埋め込まれたページをIE6で開くと、10数秒でメモリとswapを食い尽くします。PCが「ぎゃふん」って言うので、気をつけてください。 何も作業していない(再起動OKな)状態で実行す…

textContent を使うと Opera10.60 がどんどん重くなる

追記 http://jsdo.it/uupaa/u0QX に最小化したコードを載せました 今回のケースでは、条件(1)と(2)を満たす場合に、どんどん重くなっていくようです。 function bench() { // (1) nodeList を関数内部で毎回取得している var nodeList = document.getElement…

IE8, IE9pp2 には outline を設定すると z-index が効かなくなるバグがあるようです

http://uupaa-js.googlecode.com/svn/trunk/0.8/test/BrowserBug/IE/ie8_ie9_outline_zindex.htm outline 自体の描画もおかしなことになっています。

IE の cloneNode は似て非なるもの

IE における cloneNode の困った挙動について調べてました。 cloneNodeの仕様IEでオレオレ属性を追加しcloneNodeすると、参照が作成されてしまいます。 <div id="AAA">NodeA</div> var AAA = document.getElementById("AAA"); AAA.oreoreAttr = { key: 1 }; var BBB = AAA.cloneN…

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

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

IE9 preview - JavaScript Side

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

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>…

catchステートメントでは適用されますが、throwステートメントでは適用されません。

これは、IE で throw "hogehoge" と記述した場合に発生する「構文エラー」のメッセージです。 正しく例外を発生させるには、 throw new Error("あっぷるあっぷる") のように記述してください。 window.onerror = function(errorMsg, url, lineNumber) { aler…

とある最短のIE判定コード

ちょっと前まで、IEかどうかを判別する世界最短のコードは、「IEは垂直タブ(\\v)を理解しない」バグを利用した以下のコードでしたが、 '\v'=='v' // 9byte via Ajaxian その後 7byte 版が登場し、去年まではこれが世界最短とされていました。 !+"\v1" // 7by…

Array.forEach や Array.map は Firefox2〜3 や IE で利用できないケースがある

元々のタイトルは「要素数 n の密な配列を作ろうとして空回りした(JScript の Array をクロスブラウザ化)」だったんですが、ちょっと変えました。 Firefox2〜3 や IE6 〜 IE8 では、ECMAScript 5th で追加された Array.map などの便利メソッドの利用に制限が…

IE6 はノードに追加したオレオレプロパティが消せない(delete document.body.hoge が出来ない)

オレオレ要素が消せない → オレオレプロパティが消せない 余談だけどそれは「属性(アトリビュート)」またはJS的に「プロパティ」と呼ぶものだと思う。「要素」だとHTML要素のことだと思ってしまう。 by Yuichirou たしかに。 Yuichirou さん ありがとう! …

uuAltCSS 開発ログ

問題1. 子要素に position: absolute + right: が設定されていると、子要素が身切れる <html><head><title></title> <style> .view-box1 { padding: 10px; position: relative; top: 10px; left: 10px; } .box1 { border: 4px solid navy; -uu-border-radius: 4px; -uu-box-shadow: skyblue 10p</head></html>…

HTML5タグのtagNameが小文字になる

uuAltCSS.js は uuQuery.js にセレクタの処理を委譲しています。 <style> article>div:nth-child(even)>section { -uu-background-image: url(../../img/cover01.jpg); } </style> <article class="round"> article <div class="view"> <section class="round">section</section> </div> <div class="view"> <section class="round">section</section></div></article>

HTML5::Canvas.clip を Google Chrome で使用するとジャギーが発生する

uuAltCSS.js ver 0.2 の開発中です。 .bg { -uu-box-shadow: white 1px 1px 20px; -uu-background: url(../../img/grad1.png) skyblue repeat-x left bottom; } .radius { -uu-border-radius: 40px; } .border { border: 10px solid black; } とした場合に、…

Firebug1.4.1 と uuAltCSS.js(ver 0.1)は相性が悪い

以下は問題を判りやすくするために最小化したコードです。 Firefox3.5 + Firebug1.4.1 で実行し、_breakpoint; の箇所にブレークポイントを設定し、ステップ実行すると、「cannot access optimized closure」というエラーが発生します。ブレークポイントを設…

IE6 で borderColor="transparent" が機能しない

uuAltCSS+.js のコードリード用のエントリです。コードを知らない方には無意味なエントリです。border-radius: 用の処理に、「ボーダー部分をcanvasで描画し、元々borderが設定されていたノードの borderColor を透明にする」という処理がありますが、IE6 は…

Opera Dragonfly で特定のコードが含まれているとコードビューアが正しく動作しない

Operaの開発者ツール(Dragonfly)で、JavaScriptに特定のコードが含まれていると、コードビューアが「スクロールにコードが追従しなくなる」不具合を起こします(上記画像の白くなってる部分には、本当はコメント行が表示されてるはず) また、任意の位置にブレ…

グローバルフラグ付きの RegExp.test が予想外の動きをする

正規表現が沢山あると、書くほうも読むほうもしんどいので、時々まとめちゃいます。 たとえば、こんなふうに。 function hoge(ary) { var i = 0, iz = ary.length, val; var rex = /\s*\!\s*important\s*/g; // グローバルフラグ付き for (; i < iz; ++i) { …

Firefox3.5 の Canvas の描画結果が他のブラウザと異なる

ついったーだと長すぎたので、こっちに書きます。http://uupaa-js-spinoff.googlecode.com/svn/trunk/uuCanvas.js/demo1/5_1_canvas_savestate+shadow.htmlの結果が他のブラウザと異なります。 ctx.globalCompositeOperation = "destination-over""source-ou…

IE は runtimeStyle より !important のほうが強い

IE は CSS で !important が指定されていると、runtimeStyle が機能しなくなります。 デモ IE6〜IE8 では、赤い "this is test" が表示され、その他のブラウザでは青く表示されます。 <html><head><title></title> <style>body { color: red !important }</style> </head><body>this is test <script> window.onload = functi</body></html>…

ECMAScript5でargumentsがArgumentsオブジェクトになる(らしい)

@taku_eof さんのご指摘を受けて、タイトルを「ECMAScript5でargumentsが配列になる」から「ECMAScript5でargumentsがArgumentsオブジェクトになる(らしい)」に変更。(らしい) としているのは、また変化するかもしれないから。ECMAScript5 で arguments が配…

WebKit は document.defaultView.getComputedStyle の戻り値がちょっと便利

<html><head><title></title></head><body onload="boot()"><script> function boot() { var cs = document.uniqueID ? document.body.currentStyle : document.defaultView.getComputedStyle(document.body, ""); alert(cs["textAlign"]); alert(cs["text-align"]); } </script></body></html> 実行するとこうなります。 Browser textA…

IE8 + overflow: hidden + DXImageTransform.Microsoft.Matrix で 1px はみ出る

IE8 では、overflow: hidden がちゃんと実装されていないようです。 <html><head><title></title><style> .frame { position: absolute; width: 180px; height: 130px; overflow: hidden; } .matrix { -ms-filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0.99862,M12=-0.05233,M21=0.</head></html>…

Opera の drawImage(SVGSvgElement) の実装には改善の余地があるみたい

今日もHTML5::Canvas ネタです。先日、id:edvakf さんにヒントをいただいたので、drwaImage(SVGSvgElement) で Text API の実装を試してみました。 drwaImage(SVGSvgElement,...) では実装できないのでしょうか? もしかして Opera だけ? http://tc.labs.oper…