JavaScript在各种浏览器中的工作方式不同

JavaScript在各种浏览器中的工作方式不同,javascript,asp.net,google-chrome,Javascript,Asp.net,Google Chrome,在我的ASP.NET代码中,我有两个控件: <asp:Button ID="UpLoadFile" runat="server" Text="File Selection"onclientclick="fireFileClick()" onclick="ControlHasFile" CssClass="FileSelection" /> <asp:FileUpload ID="UpLoadButton" runat="server" /> 该脚本在Inter

在我的ASP.NET代码中,我有两个控件:

 <asp:Button ID="UpLoadFile" runat="server" Text="File Selection"onclientclick="fireFileClick()" onclick="ControlHasFile" CssClass="FileSelection"   />
 <asp:FileUpload ID="UpLoadButton" runat="server"  />
该脚本在Internet Explorer上运行良好

但是,当我打算使用任何其他资源管理器时,它都不起作用

这意味着“所选文件”不会传递给
FileUpload
控件

在Chrome浏览器下(按下F12键)打开
调试器
,我在那里看到的东西让我感到惊讶

也就是说

调试器
处于
打开状态
并在
objfile之后的一行中停止时。单击()
然后文件上传到
Fileupload
控件上,所有过程都正常进行。
但是当
调试器关闭(无处停止)时,所选文件不会上载到控件

有人能解开这个谜吗?

嗯。。。它看起来像“各种浏览器-各种行为”。
但我的答案中找到了解决办法


谢谢大家的帮助。

什么是“选定文件”?JavaScript函数中的
对象是什么?代码所要做的就是在页面上查找一个元素并单击该元素。该元素没有被单击吗?陈词滥调这个元素应该完成什么?JavaScript首先与之交互的客户端HTML是什么?您用来查找元素的
id
是什么?找到那个元素了吗?“点击它有什么作用?”大卫,你问的都是我的问题。请记住,此脚本在
ie 11
中运行良好,但在其他浏览器中,
文件
(我单击了该文件)不会将其加载到
上载按钮
。除非我在
objfile.click()后面的一行中打开了调试器在我的脚本中,“你问的都是我的问题”-几乎没有一个是。首先,如果您有与HTML交互的JavaScript代码,那么您应该做的第一件事就是查看HTML是什么。在问题中,您没有显示这一点,而是显示了服务器端ASP.NET控件。JavaScript使用的实际结果HTML是什么?还可以尝试将调试信息记录到控制台。例如:
console.log(objfile)id
获取元素后立即执行code>。当您这样做时,控制台会记录什么?@David HTML是
HTML PUBLIC“-//W3C//DTD XHTML 1.0//EN”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
。在我把这个
console.log(objfile)放进去之后;
在我的脚本中,绝对没有显示任何内容。控件
上载按钮中没有选定的文件。但是当我在
objfile之后的一行中停止调试器时。单击()
在脚本中,然后将文件加载到文件上载按钮。当我使用
ie11
@David时,所有这些都不会发生。我将其转换为HTML 5…没有任何变化
<script type="text/javascript">
        function fireFileClick() {
        var objfile = Object;
        objfile = document.getElementById("<%= UpLoadButton.ClientID %>");
        objfile.click();
        }
</script>