ここでは、2001年 9月に正式リリースを迎えた Internet Explorer 6.0 の
素晴らしい機能の一端を紹介します。 ← ウソ f(^^;
... あれ?この出だしは「What's new in IE5」と同じだ(笑)。
まあ、主旨も同じですからヨシとしましょう。
|
IE5 の時と同様 JavaScript から見るバージョンは( Windows 98 の場合 ) このようになります。
appVersion : 4.0 (compatible; MSIE 6.0; Windows 98) userAgent : Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
つまり、 IE5.0/IE6.0 とはブラウザのバージョン( MSIE 6.0 )が異なるだけです。
また JavaScript 自体は 1.3 のようです。
*
しかし、MS の Version Infomationを見ると、
同じ JavaScript1.3 であるハズの IE5.0, IE5.5 の間でも若干の差があるようです。
言語仕様の実装が変わったら、バージョン自体も変更する必要があると思うんですが...
IE6 でも違う部分があるんでしょうかね〜
#> 現時点( 2001.09.30 )では IE6 の欄はなかったです
◆ 標準準拠モード
MS の msdn library
IE6 における CSS の拡張
によると IE6 は CSS1(笑) を完全にサポートしているようです。
従来のスタイルシートと CSS1 との最も大きな差は多分ボックスモデルでしょう。
スタイルシートで指定したサイズの意味するところが異なるため、
緻密にデザインされたページは CSS1 のもとではデザインが崩れる可能性があります。
気になる従来との互換性についてはこんな記述があります。
しかも、これらの機能拡張の素晴らしい点は、 以前のバージョンの Internet Explorer 用に開発したアプリケーションを使用しても、 互換性にかかわる深刻な問題が発生しないことです。
この記述の理由は CSS1のサポートを「標準準拠モード」と称して
DOCTYPE宣言の記述方法により切り換えるためのようです。
簡単に言えば HTML4 の DOCTYPE宣言で タイプを Framset か String に指定するか
あるいは DTD への URI を記述することで標準準拠モードになるようです。
そこで1つの疑問が湧きます。
HTML4 の DOCTYPE宣言には使用するスタイルシートのレベルの指定ができたのだろうか?
DOCTYPE宣言はあくまでも HTML の記述のレベルに関する指定なので
非HTML要素のスタイルシートの指定を styleタグ や linkタグで指定するならわかるのですが...
#>
元もと HTML を HTML4 strict で記述していて IE で表示確認をしていたページは
ひょっとするとデザインが崩れるかもしれません。
CSS2 や CSS3 についてはどーするのでしょうかね〜 f(^^;
スタイルシートを使用する場合、
ページの雰囲気に合わせてフォントを指定することは良くあります。
フォントの指定( ここでは font-family )には使用したいフォント名の他に
総称フォントファミリも指定すると思います。
IE6 では総称フォントファミリを指定する場合、注意( と言うか、留意というか... )が必要です。
つまり、"sans-serif" や "cursive" を指定すると日本語が表示されないようです。
sans-serif | かな、カタカナが表示されない |
---|---|
cursive | 数字を除く日本語が表示されない |
#> 確認用サンプルはこちら
こういう場合はしょーがないので
"MS UI Gothic", "AR隷書体M" など(*1)の family-name も指定します。 (-_-;
*1 う〜む。
family-name を指定すると言っても、
どの Windows マシンにも入っている日本語フォントって何だろう...
全て "MS ゴシック" とかにしちゃうのもなんだし...
また、IE5 ではフォント名を指定した場合に、コードページ932 にない文字が表示できない
未解決の問題があるようですが、
IE6 の問題はこれとも違いそう... f(^^;
こんな類の問題はすぐにパッチが出そうな気もする... > 当分ほっとこーっと
◆ 日本語の文字化け
ん〜。以前のバージョンでもそうだったんですが、
metaタグで charset 指定がしてあってもブラウザのエンコードを自動認識に設定していると
正しく文字コードを認識できない場合があるようです。
これだけなら JavaScriptネタではないのですが、
どうやらこの metaタグ を JavaScriptで出力している時に発生するように見えます。
charset として "Shift_JIS" が指定できるようになったのは比較的最近の話で
以前は "x-sjis" で指定していました。つまり、古いブラウザで "Shift_JIS" を指定すると
いろいろと不幸なことが発生するので、 JavaScript でブラウザのバージョンを判断し
meta タグを出力( document.write )すると、出力した値は無視して文字列の自動認識を
行った結果として英文と判断されるようです。
#>
と、思っていたら、最近文字化けが発生しなくなっている...
どーも、上に書いたような単純な理由じゃあないようです。
ってことで、調査は続く... かも。 f(^^;
◆ WinXP+IE6 で Windows Updateできない!?
リリースするや重大なセキュリティホールが発見され、
しかもサーバ障害で Windows Updateできないオマケまでついた WinXP ですが、
それ以外にもファイアウォール環境では Windows Update できない可能性があります。
これは Windows Update する際の HTTP Protocol を扱うエンジン部分が
他のプラットフォームと異なる(*1)ためのようで、
デジタル署名のデータなどを取得する時、
他の環境では通常 If-Modified-Since ヘッダを付加して GET するところを
HEAD で行っています。
問題はこの HEAD コマンド送出の際 "Content-Length: 0" を付加している(*2)ために、
ある種のプロクシサーバ( 少なくとも Squid2.3.STABLE3 以前 *3 )では無意味なヘッダとして
エラー応答することが原因で失敗します。
*1
Windows Update に使用される処理の一部は IE とは異なるコンポーネントを使用しているのか
送出する User-Agent が異なります。
Win98+IE6 環境では "Windows Update", "CryptRetrieveObjectByUrl::InetSchemeProvider"
など使用され、
WinXP+IE6 環境では "Industry Update Control" が使用されるようです。
*2
Content-Length は RFC では 0 以上の値として規定していますから間違いではないと思いますが
HEAD コマンドは Content 自体を持たないコマンドなので付ける意味がありません。
ひょっとすると .NET Framework に絡んだ実装でしょうか?
だとすれば .NET の品質には疑問が湧きますが...
*3 この問題は Squid2.3.STABLE4 で修正されているので Squid に関してはバージョンアップで回避できますが、 他のプロクシサーバに関してはどうなるか不明です。