window.event javascript代码在Firefox中不起作用

时间:2014-11-13 17:54:21

标签: javascript html asp.net 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;
    };
}

每当单击“upload control”div时,我希望标签触发输入文件的click事件。 问题是....这适用于IE和Chrome但在Firefox上我收到消息
  “TypeError:window.event未定义”
好像firefox不支持window.event代码。 我怎样才能使它在Firefox上运行?请帮忙

2 个答案:

答案 0 :(得分:1)

Firefox不支持windows.event对象。使用这些变量来存储值,在使用代码后它将起作用:

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

答案 1 :(得分: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>