New property difference between IE and Firefox

P

Pauljh

Hi All,
Can someone please explain why the following code works in IE but
not firefox please.
In ie I get an alert box with "mynewprop" but in Firefox I get
"undefined".

Help much appreciated.

Ta!!

Paul

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
/>
<title>Untitled Document</title>

<script type="text/javascript">
function init() {
var hello=document.getElementById('hello');
alert(hello.newprop);
}
</script>
</head>

<body onload="init();">
<a id="hello" newprop="mynewprop">
</a>
</body>
</html>
 
V

VK

Pauljh said:
Hi All,
Can someone please explain why the following code works in IE but
not firefox please.
In ie I get an alert box with "mynewprop" but in Firefox I get
"undefined".

Help much appreciated.

Ta!!

Paul

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
/>
<title>Untitled Document</title>

<script type="text/javascript">
function init() {
var hello=document.getElementById('hello');
alert(hello.newprop);
}
</script>
</head>

<body onload="init();">
<a id="hello" newprop="mynewprop">
</a>
</body>
</html>

What you are getting on document.getElementById('hello') is DOM
Interface to the element, not the element itself. And Firefox doesn't
expose custom attributes in the DOM Interface. For an universal
coverage of custom attributes you should manipulate element's node
directly by using hasAttribute, getAttribute, setAttribute methods.

Use this instead:

function init() {
var hello=document.getElementById('hello');
alert(hello.getAttribute('newprop'));
}
 
P

Pauljh

VK said:
Pauljh wrote:
<snip>

What you are getting on document.getElementById('hello') is DOM
Interface to the element, not the element itself. And Firefox doesn't
expose custom attributes in the DOM Interface. For an universal
coverage of custom attributes you should manipulate element's node
directly by using hasAttribute, getAttribute, setAttribute methods.

Use this instead:

function init() {
var hello=document.getElementById('hello');
alert(hello.getAttribute('newprop'));
}

VK,
Brilliant, thanks!!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top