我有一个标记
<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上运行?请帮忙
答案 0 :(得分:1)
Firefox不支持windows.event
对象。使用这些变量来存储值,在使用代码后它将起作用:
var event = e || window.event
var assumed = (event.target || event.srcElement).id;
答案 1 :(得分:0)
试试这个:
经过测试且100%正常工作
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>