2014-11-21 90 views
-2

您好,我在使所有瀏覽器都可以使用.Click()命令時遇到了困難,它可以在IE上運行,但不能在FF和Chrome上運行。HTML Click()在所有瀏覽器中都不起作用

情景: Unity項目,場景中有一個按鈕。當按鈕被按下時,調用一個javascript函數。

內部的功能我有document.getElementById("file").click();

我所試圖做的事:

當JavaScript函數被調用時,我需要打開本地文件瀏覽器對話 (<input id="file" type="file">

按下按鈕並調用「文件」適用於所有瀏覽器。但是嘗試在類型上調用點擊命令在FF,Chrome中似乎不起作用。有沒有其他的選擇? 任何工作?謝謝。

只是爲了澄清,沒有用戶輸入的WEBPAGE,我唯一得到的是一個JavaScript函數,它在html中被調用。

+1

可能有[如何打開文件/兄弟wse對話框使用javascript?](http://stackoverflow.com/questions/6463439/how-to-open-a-file-browse-dialog-using-javascript) – 2014-11-21 11:05:04

+3

對,'click()'不是標準。而不是模擬點擊,只需做點擊就可以完成。這可能有所幫助:http://stackoverflow.com/questions/15739263/phantomjs-click-an-element/15948355#15948355。 ALso https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.click。 – 2014-11-21 11:05:13

+0

你可以使用jquery的觸發方法 – 2014-11-21 11:31:07

回答

0

你的觀察調用是正確的.click()在Internet Explorer中不受支持。通常的做法是使文件輸入元素具有較低的不透明度並將其放在按鈕上。

,你可以在這裏看到這種方法的細節

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

0

。點擊是不是在JavaScript中的函數監聽單擊事件。 要監聽IE我們使用

.attachEvent 

事件和其他的瀏覽器,我們使用

.addEventListener 

我已經做樣品例如,此代碼將所有的瀏覽器

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

+0

但是他不想**點擊**,他想**做**點擊。此外,小點,但說「聽IE的事件」是不正確的;它應該是「爲* IE的*陳舊版本監聽事件」。 – 2014-11-21 11:29:20

相關問題