IEでやらないほうがいいこと

  • このエントリーをはてなブックマークに追加
  • Pocket

昔、メモしていたブラウザごとの仕様(?)っぽいものを発見したので転記。

というよりはほぼIE8のお話。

win7のデフォルトはIE8だからまだまだ生きてる可能性もあるからね・・・ vistaは、、、ちょっとわからない。

IE8

pre

まさかの改行してくれないwwww
なんでよwww

以下のcssで対応可能。

select

IE8でselectboxのoptionに”selected”を指定しているときに不具合がある模様。

  • selectboxの選択項目のデフォルト指定(selected)が指定されているのに効かない場合がある
  • select下でoptionの clone() や hide() など操作するとおかしくなる様子
  • 操作が終了した最後にあらためて選択してやる必要がある

ファイルダウンロード

headerに Cache-Control:no-cache をいれているとファイルのダウンロードができない。

プロキシやブラウザがキャッシュしてるとイクナイページがあるとこれを入れたくなるけども、DLさせる箇所だけは外しておくのが吉。

あと、これとは関係ないけどヘッダーよりも上にコメントは書かないのはお約束。

JavaScript

結構盛り沢山。
是非とも対応ブラウザはIE10以上にしていただきたい。

願わくば、IEには対応しない or IEだけ対応する という英断をお願いします。。。

連想配列(オブジェクト)の最後のカンマ(,)はエラーになる。

他のブラウザやPHPなんかではついついカンマを入れておきがちになるけども、これを入れてるとIE8でエラーになるので注意。

jsonのレスポンスヘッダ

jsonのレスポンスヘッダを text/html にすると受け付ない。

動的追加した要素

script等で動的に追加した要素にはスタイルが当たらない。

動的追加の要素のクラスに ie7_class7 を追加するといいらしい。

ちょっと記憶があやふやです・・・

fileタグ

ajaxでヌルヌル動くようなページでファイル投稿なんかがあったりするときに、 <input type=file> のvalueをクリアできないためフォームに値が残ってしまう。

IEはfileの扱いが結構キビしめなようで、fileのプロパティ”files”なんかにもアクセスできない(見えない?)
なので消して再作成するしかない(?)

$().clone(true) を使うとcoolかもしれない。

使えない・使わないほうがよいもの

  • getElementsByClassName()が使えないため、jQueryの $(".クラス名") で代用
  • element.childNodes[i].remove() が使えないので element.removeChild(element) で代用
  • innerHTMLで<table>タグは置き換えられない
  • innerTextは「IEでしか」動かないので使わない
  • window.document.referrerは使わない方がよい(URL直打ちやlocationなどで飛んだときにリファラを無視する仕様になってる)

FireFox

ついでにFireFoxでも「おっ」と思う挙動があったので、追記。

FireFoxはリロードしてもチェックボックスとラジオボタンのON/OFFを記憶してくれてる。

キャッシュしてるのかどうかは不明だが、input要素に autocomplete="off" をつけるといい感じ。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*