以下代码在 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 中已启用,然后再尝试更改其颜色。
这不是一个因素,因为代码永远不会禁用标签标签。
不仅仅是这个标签标签——页面上的所有标签标签都无法变黑,但仅在 IE9 中——在 FF 中一切正常。
有没有我错过的“陷阱”或技巧?