AjaxTips: FFでは、input type=fileのwidthが指定できない

こんにちわ。胃酸過多で悩んでいる気配のあるおじいさんです。
微妙におなかがチリチリするんで、集中力が奪われますね。>胃酸過多

さて、本題なんですが。
先日から、Ajaxでファイルをアップロードするコンポーネントにヒマを見つけては挑戦しているわけですが、また面倒なことに、FFではinput type=fileのスタイルwidthが効かないようですね。

かといって、IEとFFでは、sizeの幅が違います。そこで、size幅を逆算して、そこから設定するwidthにぴったりなsizeを指定しなおしてやる、という操作が必要になるかと。


//objには、input type=fileのオブジェクトを入れてください。
//wには、設定する幅です。
function setWidth(obj, w) {
var w9,w10;
obj.size=9; w9 = obj.offsetWidth;
obj.size=10; w10 = obj.offsetWidth;
obj.size = 10+(w-w10)/(w10-w9);
}


こんな感じですか。
TryAndErrorというか、そういうのを繰り返してるんで、あんまり変な所で使うと、一瞬画面が崩れてしまうかもしれません。
それと、この方式で設定される幅というのは、offsetWidthが返却する幅はファイル名入力欄+「添付」ボタンの幅ですんで、そこまでを含んだ領域を指定することになります。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

ナイス

この記事へのコメント

この記事へのトラックバック