Javascript 文件上载单击事件在应用某些css样式后未正确触发(在IE 8上)

Javascript 文件上载单击事件在应用某些css样式后未正确触发(在IE 8上),javascript,css,asp.net,.net,Javascript,Css,Asp.net,.net,我有以下几点 Asp.net标记 <div class="formSample"> <div class="uploadTest"> Choose File <asp:FileUpload ID="uploadControl" runat="server" /> </div> </div> .上传测试 { font-family:

我有以下几点

Asp.net标记

 <div class="formSample">
        <div class="uploadTest">
            Choose File 
        <asp:FileUpload ID="uploadControl" runat="server" />
        </div>          
 </div>
.上传测试

 {
   font-family: 'open_sansregular', Arial, Helvetica, sans-serif;
   float: right;
   overflow: hidden;
   width: 9em;
   text-align: center;
   color: white;
    font-size: 1em;
   background: #22a0db;
   cursor: pointer;
    padding: 0.4em 0.2em 0.1em 0.3em;
     margin: 0em 0em;
    border-radius: 1em;
   -webkit-border-radius: 1em;
    -moz-border-radius: 1em;
    -ms-border-radius: 1em;
    -o-border-radius: 1em;
}
Javascript

    function upLoadOnClick() {
        document.getElementById('ctl00_ContentPlaceHolder1_uploadControl').parentNode.click();
    }

      document.getElementById('ctl00_ContentPlaceHolder1_uploadControl').onClick = upLoadOnClick;
这里的问题是,当我按下右边的控件时,只会出现弹出窗口,但当我按下中间或左边的控件时,浏览窗口不会启动。这个问题只发生在IE8中。 有什么建议吗

首先,出于安全原因,大多数(可能是所有现代)浏览器不允许通过编程方式单击
文件
输入,因此您的javascript无法按您希望的方式工作。要使“选择文件”弹出窗口出现,用户必须单击控件本身。在Chrome和Firefox中,您的代码在没有javascript的情况下似乎都能正常工作。这是一本书


众所周知,
文件
输入很难跨浏览器设置样式。我认为最常见的方法是使文件输入不可见,并将其覆盖在其他元素之上,这些元素的样式是您希望它们的外观。这是另一个例子。

你好,鲁迪斯特。谢谢你的评论。你试过在IE8上运行上述内容吗?很抱歉没有解释浏览器版本。如果您尝试在IE8上运行它,这个问题将变得非常清楚。
    function upLoadOnClick() {
        document.getElementById('ctl00_ContentPlaceHolder1_uploadControl').parentNode.click();
    }

      document.getElementById('ctl00_ContentPlaceHolder1_uploadControl').onClick = upLoadOnClick;