cod*_*rex 18 javascript internet-explorer
document.click = check;
function check(e)
{
var obj = document.getElementById('calendar_widget');
if (obj != 'null')
{
if (e.target.id != 'show_calender')
obj.style.display='none';
}
}
Run Code Online (Sandbox Code Playgroud)
错误在Internet Explorer中:e.target.id未定义.
Pre*_*aul 40
IE不支持target属性,而是使用srcElement.
更改:
if (e.target.id != 'show_calender')
Run Code Online (Sandbox Code Playgroud)
至:
if ((e.target || e.srcElement).id != 'show_calender')
Run Code Online (Sandbox Code Playgroud)
您可能还需要将其添加到函数的开头:
if (!e) e = window.event
Run Code Online (Sandbox Code Playgroud)
您的最终代码如下所示:
function check(e) {
if (!e) e = window.event;
var obj = document.getElementById('calendar_widget');
if (obj != 'null') {
if ((e.target || e.srcElement).id != 'show_calender')
obj.style.display='none';
}
}
Run Code Online (Sandbox Code Playgroud)
Internet Explorer不会将事件对象传递给事件处理程序 - 它会将其设置为窗口对象的属性.此外,它使用srcElement而不是target.尝试
document.click = check;
function check(e)
{
var target = e ? e.target : window.event.srcElement;
var obj = document.getElementById('calendar_widget');
if (obj != 'null')
{
if (target.id != 'show_calender')
obj.style.display='none';
}
}
Run Code Online (Sandbox Code Playgroud)