I have difficulty on integrating my JavaScript syntax. My code is working on Internet Explorer (IE). However, I encountered a JavaScript error when running it on Safari.
This is my test code:
document.onmouseup = function hideaddrspopup () {
if (event.srcElement.id != 'fieldName') {
alert(event.srcElement.id);
}
}
I tried something like:
document.onmouseup = function hideaddrspopup() {
if (event.srcElement.id != 'fieldName' || event.target.id != 'fieldName') {
alert(event.srcElement.id);
alert(event.target.id);
}
}
But still an error is appearing on the console:
'TypeError: 'null' is not an object (evaluating 'event.target')'
I am aware that event.scrElement
is only working in IE. How to make it work on the other browsers?
I have difficulty on integrating my JavaScript syntax. My code is working on Internet Explorer (IE). However, I encountered a JavaScript error when running it on Safari.
This is my test code:
document.onmouseup = function hideaddrspopup () {
if (event.srcElement.id != 'fieldName') {
alert(event.srcElement.id);
}
}
I tried something like:
document.onmouseup = function hideaddrspopup() {
if (event.srcElement.id != 'fieldName' || event.target.id != 'fieldName') {
alert(event.srcElement.id);
alert(event.target.id);
}
}
But still an error is appearing on the console:
'TypeError: 'null' is not an object (evaluating 'event.target')'
I am aware that event.scrElement
is only working in IE. How to make it work on the other browsers?
-
event.srcElement was an IE invention. To be patible with IE < 9, use
even.target || event.srcElement
. – RobG Commented Feb 2, 2016 at 7:18
3 Answers
Reset to default 4According to MDN:
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large inpatibilities between implementations and the behavior may change in the future.
Event.srcElement is a proprietary alias for the standard Event.target property. It is specific to old versions of Microsoft Internet Explorer.
So just avoid using event.srcElement instead you should use event.target.
As Bhojendra mentioned don't use srcElement
. Check for object null or not before accessing id
or target
property as below.
document.onmouseup = function hideaddrspopup ()
{
if (e && e.target && e.target.id!='fieldName')
{
alert(e.target.id);
}
else if(e && e.srcElement && e.srcElement.id!='fieldName')
{
alert(e.srcElement.id);
}
}
Updated with else if
to support older IE browser. target
should support it too but you could test without else part if it is necessary or not.
You're missing the event variable in your function
document.onmouseup = function hideaddrspopup (event)
{
if (event.srcElement.id != 'fieldName' || event.target.id != 'fieldName')
{
alert(event.srcElement.id);
alert(event.target.id);
}
}
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745189092a4615777.html
评论列表(0条)