2014-11-13 17 views
0

工作,我有一個標記window.event JavaScript代碼無法在Firefox

  <div id="uploadControl" class="fileUpload1"> 
        <label for="uploadFile" id="labelId">Choose File</label> 
        <input class="upload" type="file" id="uploadFile" /> 
       </div> 

的JavaScript

 window.onload = function() { 
    document.getElementById('uploadControl').onclick = function (event) { 

     // process the event only for the original source 
     if (window.event.srcElement.id === 'uploadControl') { 
      document.getElementById('labelId').click(); 
     } 
     //prevent event propagation 
     window.event.cancelBubble = true; 
    }; 
} 

我要在標籤火輸入文件單擊事件每當「上傳控制「div被點擊。 問題是....這在IE和Chrome,但在Firefox中我得到的消息
「類型錯誤:window.event是未定義」
好像火狐犯規支持window.event代碼。 我如何使它在Firefox上工作?請幫助

+0

爲什麼你不使用'event(event){'? –

+0

我發佈的答案你可以嘗試, –

回答

0

試試這個:

測試和100%的工作

你可以結合這裏eventthis(元素)

function postBackByObject(e,d) { 
      var target = e.target || e.srcElement;  // Support IE6-8 

      if (d.id == 'uploadControl') { 

       document.getElementById('labelId').click(); 
      } 
      target.cancelBubble = true; 
     } 


<div id="uploadControl" class="fileUpload1" 
onclick="postBackByObject(event,this);"> 
<label for="uploadFile" id="labelId">Choose File</label> 
<input class="upload" type="file" id="uploadFile" /> 
       </div> 
1

Firefox不支持windows.event對象。使用這些變量來存儲該值,然後使用您的代碼:

var event = e || window.event 
var assumed = (event.target || event.srcElement).id; 
+1

改變最後一行這個'var assume =(event.target || event.srcElement).id;' –