HTML Click()不适用于所有浏览器

时间:2014-11-21 11:03:28

标签: javascript html unity3d

您好我很难让.Click()命令在所有浏览器上运行,它可以在IE上运行,但不适用于FF,Chrome。

情景: Unity项目,场景里面有一个按钮。按下按钮时,会调用一个javascript函数。

在该函数中我有document.getElementById("file").click();

我在做什么:

当调用javascript函数时,我需要打开本地文件 - 浏览器对话框 (<input id="file" type="file">

按下按钮并调用&#34; file&#34;适用于所有浏览器。但尝试在类型上调用单击命令似乎不适用于FF,Chrome。还有其他选择吗? 任何工作?感谢。

只是为了澄清,WEBPAGE上没有用户输入,我得到的唯一一个是在html中调用的javascript函数。

2 个答案:

答案 0 :(得分:0)

您的观察呼叫正确。在Internet Explorer中不支持.click()。通常的做法是使文件输入元素具有低不透明度并将其放在按钮上。

您可以在此处查看此方法的详细信息

http://www.quirksmode.org/dom/inputfile.html

答案 1 :(得分:0)

.click不是javascript中侦听点击事件的函数。 要听IE的事件,我们使用

.attachEvent

以及我们使用的其他浏览器

.addEventListener

我已经做了示例示例,此代码适用于所有浏览器

window.onload=function()
		{
			var a=document.getElementById("abc");
			 myAttachEvent(a, "click",onClickMethod ); 
		};
		function myAttachEvent(element, type, handler) {
    			if (element.addEventListener) {
        			element.addEventListener(type, handler, false);
    			}else if (element.attachEvent) {
        		element.attachEvent('on' + type, handler)
    			} else {
        				element['on' + type] = handler;
    			}
		}
		function onClickMethod(){
			alert("clicked");
		}
div{
			background: green;
			height:100px;
			width:100px;
			
		}
<div id="abc"></div>