次のコードは FF では機能しますが、IE9 では機能しません。
// turn on the 'image file upload' field and its label
document.getElementById('itemImageId').disabled = false;
document.getElementById('labelForImageUploadID').style.color = "black";
ラベルとファイル入力を含む HTML は次のとおりです。
<label for="itemImageId" style="color: silver" id="labelForImageUploadID">Item image
(select to change the item's current image)</label>
<input type="file" size="100px" id="itemImageId" disabled="disabled"
name="theFileUpload"></input>
** 編集 ** 上記のラベルとファイル アップロード タグは、次のdiv内にネストされています。マウス クリックがどのように処理されるかを確認できるように、これを追加しました。handleRowClick ()関数には、テキストを黒くしようとする上記の Javascript コードがあります。
<div class="itemlistRowContainer" id="topmostDiv_ID" onclick="handleRowClick(this);"
onmouseover="handleMouseOver(this);" onmouseout="handleMouseOut(this);"
ondblclick="handleDblClick(this);">
したがって、このラベルが最初にページに表示されたとき、その色は正しいです。インライン カラー スタイルによるシルバーです。
次に、上記の Javascript コードがマウス クリックで実行されます。
Firefox では、Javascript コードがラベル テキストを黒に変え、ファイル アップロード コントロールを有効にします。
ただし、IE9 では、ラベルのテキストはグレーのままです。
IE9 はstyle.color = "somecolor"をサポートしていないため、ラベルタグ の色を動的に制御できますか?
他のいくつかの投稿を見てきましたが、私が見つけた唯一の癖は、動的に有効化/無効化を行っている場合、色を変更する前に IE9 でタグが有効になっていることを確認することでした。
コードがlabelタグを無効にすることは決してないので、これはここでは要因ではありません。
この1つのラベルタグだけではありません-ページ上のすべてのラベルタグが黒くなりませんが、IE9でのみ-FFではすべてが機能します。
私が見逃している「落とし穴」やトリックはありますか?