AjaxTips: FFでは、input type=fileのwidthが指定できない
こんにちわ。胃酸過多で悩んでいる気配のあるおじいさんです。
微妙におなかがチリチリするんで、集中力が奪われますね。>胃酸過多
さて、本題なんですが。
先日から、Ajaxでファイルをアップロードするコンポーネントにヒマを見つけては挑戦しているわけですが、また面倒なことに、FFではinput type=fileのスタイルwidthが効かないようですね。
かといって、IEとFFでは、sizeの幅が違います。そこで、size幅を逆算して、そこから設定するwidthにぴったりなsizeを指定しなおしてやる、という操作が必要になるかと。
こんな感じですか。
TryAndErrorというか、そういうのを繰り返してるんで、あんまり変な所で使うと、一瞬画面が崩れてしまうかもしれません。
それと、この方式で設定される幅というのは、offsetWidthが返却する幅はファイル名入力欄+「添付」ボタンの幅ですんで、そこまでを含んだ領域を指定することになります。
微妙におなかがチリチリするんで、集中力が奪われますね。>胃酸過多
さて、本題なんですが。
先日から、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が返却する幅はファイル名入力欄+「添付」ボタンの幅ですんで、そこまでを含んだ領域を指定することになります。
この記事へのコメント