読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

IE Mobile for Windows Phone 7 の特徴

MSDN ブログに IE Mobile for Windows Phone 7 の更新点が紹介されていました。

The new scripting functions are:

  • getElementsByClassName(name): given the class specified by name, returns all of the elements or sub-elements within the scope of this function call
  • querySelector(selector): given the selector, returns the first element within the sub-tree of the scope of this function call that matches the selector
  • querySelectorAll(selector): given the selector, returns all elements within the sub-tree of the scope of this function call that match the selector
JavaScript and CSS changes in IE Mobile for Windows Phone 7 - IE for Windows Phone Team Weblog - Site Home - MSDN Blogs

Selectors Level 1 と DOM Level 3 Core の一部が実装されているらしいので、IE7 よりは少しだけましに見えます。そこで携帯向けに作成した CSS Selector と JavaScript のテストを試してみました。

  • DOM Level 2 Events は未対応
    • addEventListener, removeEventListener が使えない
  • XMLHttpRequest Level 1 は対応
  • DOMContentLoaded は未対応
  • Selectors は Level 3 まで部分的に対応
    • :before, :after に未対応
    • 間接セレクタ、属性セレクタには対応
    • それ以外の Level 3 には未対応
  • -ms-text-size-adjust に対応
    • -webkit-text-size-adjust と同じ

:after が使えないので、clearfix などのハックが使えません。これはかなり痛い…。JavaScript だと addEventListener が使えないのが残念。

今後のアップデートで IE9 とまで行かなくても IE8 相当までは改善してもらいたいですね。

追記

CSS3.info の CSS3 Selectors Test を実行してみました。実行結果は以下の通りでした。

From the 41 selectors 9 have passed, 4 are buggy and 28 are unsupported (Passed 324 out of 574 tests)

対応済み

  • *
  • E
  • .class
  • #id
  • E F
  • E > F
  • E + F
  • E[attribute=value]
  • E ~ F

不完全

  • E[attribute] (2 out of 7 failed)
  • E[attribute~=value] (1 out of 17 failed)
  • E[attribute|=value] (1 out of 19 failed)
  • :first-child (1 out of 7 failed)

未対応

  • :lang() (5 out of 11 failed)
  • :before (1 out of 1 failed)
  • ::before (1 out of 1 failed)
  • :after (1 out of 1 failed)
  • ::after (1 out of 1 failed)
  • :first-letter (1 out of 1 failed)
  • ::first-letter (1 out of 1 failed)
  • :first-line (1 out of 1 failed)
  • ::first-line (1 out of 1 failed)
  • E[attribute^=value] (3 out of 20 failed)
  • E[attribute$=value] (3 out of 20 failed)
  • E[attribute*=value] (3 out of 16 failed)
  • :root (1 out of 1 failed)
  • :last-child (5 out of 7 failed)
  • :only-child (3 out of 5 failed)
  • :nth-child() (47 out of 88 failed)
  • :nth-last-child() (47 out of 88 failed)
  • :first-of-type() (7 out of 10 failed)
  • :last-of-type() (7 out of 10 failed)
  • :only-of-type() (3 out of 5 failed)
  • :nth-of-type() (47 out of 88 failed)
  • :nth-last-of-type() (47 out of 88 failed)
  • :empty (2 out of 6 failed)
  • :not() (2 out of 4 failed)
  • :target (1 out of 3 failed)
  • :enabled (1 out of 2 failed)
  • :disabled (1 out of 2 failed)
  • :checked (2 out of 2 failed)

思ったより未対応のセレクタが多いので、今後に期待しておきたいです。