javascript シンタックスシュガーは時々苦い…

Ads/Widgets:
サイト情報:
QLOOKアクセス解析
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
javascriptのブラウザ依存動作には結構慣れてきたつもりでいた今日この頃、 こんなコードがうまく動かないことにも何かどこかにそういうブラウザ依存問題があるに違いない、 と、 日曜WEBプログラマなオレが調べること約一時間・・・ワカラネエ。
var div = document.createElement('div');
div.style.float = 'left';

ネタ尽きてやけ気味に「javascript CSS float」てな感じのキーワードで検索・・・いきなり正解あり、と。

いい加減このパターンを卒業しろよ>オレ

正解はこういうことらしい。

var div = document.createElement('div');
div.style.float = 'left';       /* 間違い */
div.style.cssFloat = 'left';    /* 標準はこれ */
div.style.styleFloat = 'left';  /* IE固有 */

最初、「div.style.float = ほげほげ」と書いていたコードが、Chromeでは思ったとおりに動いてしまっていたので、ここに間違いがあるとは思ってなかったのですよ...orz

そもそも「float」は予約語だからプロパティ名に使うと何か不都合あるのか...

Chromeおおらかすぎだよ。 そんな姿勢は嫌いじゃないけど。

何はともあれ、

エレメント.style.プロパティ名 = プロパティ;
というような記法はシンタックスシュガーで、 DOM的にはsetAttributeを使うのが正確な定義だったのかなあ、 と反省しかけて調べてみたら実はその逆みたい。 うーむ。奥が深い、 というのとはちょっと違う気がする。 大量の豆知識が必要、 という世界なんだな、きっと。
この記事へのコメント
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
この記事のトラックバックURL
http://arakiba.blog62.fc2.com/tb.php/283-c9422613
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック

 Copyright © アラキバ All rights reserved. 

 / Template by 無料ブログ テンプレート カスタマイズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。