JavaScript在各种浏览器中的工作方式不同
在我的ASP.NET代码中,我有两个控件: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: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>