IE

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

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

innerHTML = "" まとめ

HTML5をサポートしていないIE6〜IE8で、node.innerHTML = "..."; のように HTML5 で追加された新要素含んだ文字列を innerHTML に与えると、次のいずれかの条件が成立した場合に親子関係の崩れたサブツリーを生成してしまいます。 innerHTML の前に document…

$("div").append("section") できないらしいので色々調べてみた

追記: jQ的には解決していませんが、素の JavaScript を使った回避方法がわかりました。IE8以下では、オンザフライで作成した要素に対して innerHTML すると謎要素が作成されてしまうといった現象がでるため、一度要素片を、DOMツリー( body とかね ) にぶら…

HTML5の新要素をinnerHTMLで生成できないバグを回避する

IE6〜IE8のinnerHTMLには問題が多く、そのひとつに、HTML5の新要素を食わせると悪夢のようなDOMツリーを生成するというものがあります。 var div = document.createElement("div"); div.innerHTML = "<section>section</section>"; document.body.appendChild(div); 上記のコー…

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

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

IEで作りたてのノードにフィルターを設定する

js IE

parentNode が null の状態で、node.filters に触れるとエラーになるため、 var node = document.createElement("div"); node.style.filter = "progid:DXImageTransform.Microsoft.Alpha()"; var filter = node.filters.item("DXImageTransform.Microsoft.Al…

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

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

IE8の開発者ツールはスクリプトの実行結果に悪影響を及ぼすことがある

js IE

IE8 で以下のページを表示し開発者ツールで[デバッグ]を開始すると debugger; の位置で自動的に停止します。 # debugger はハードブレイクポイントです。大抵のブラウザで利用可能です。 <html><head><title></title> <style> div { border: 1px solid gray; width: 200px; height: 200px } </style> <script> w</head></html>…

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

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

IEのクラッシュ画面を再現してみる

IEでどーぞ <script> [,]!=0&&((b=document.body).style.cssText="height:1px;overflow:hidden", b.innerHTML+='<p style="z-index:99;position:absolute;width:'+b.clientWidth+'px;height:'+b.parentNode.clientHeight+'px;background:url(ie.png) no-repeat 50%" </script>…

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…

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

js IE

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

140文字以内で DOMContentLoaded

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

canvas 互換機能の bugfix

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

IE9 preview - JavaScript Side

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

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

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