Reputation: 36749
In my JSP i am using a custom tag <showDateFormat/>
like:
Date From:<showDateFormat/>
and in my common.js file i am having
function addDateFormatInfo(){
var dateFormatHolder = document.getElementsByTagName("showDateFormat");
if ( dateFormatHolder ){
for ( i = 0 ; i < dateFormatHolder.length; i++ ){
dateFormatHolder[i].innerHTML = '<div class="infoSmall" ><span>(mm/dd/yyyy)</span></div>';
}
}
}
so in my page wherever there is showDateFormat
tag is used, it will display (mm/dd/yyyy)
. It is working fine in FF, but not in IE. what could be the problem?
Upvotes: 1
Views: 3577
Reputation: 4399
what you need a custom tag for IE, using Namespaces:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:IETag>
and instead of plain:
<showDateFormat/>
use
<IETag:showDateFormat/>
cutom tags are much more powerful especially when bound to HTC behaviors, but unfortunately they are still IE specific, although you can manage to code something using JQUERY for all browsers, read more here: Using custom tags in IE
Upvotes: 0
Reputation: 123791
Please take a look about Custom Tags support in Internet Explorer.
Windows Internet Explorer's support for custom tags on an HTML page requires that a namespace be defined for the tag. Otherwise, the custom tag is treated as an unknown tag when the document is parsed
http://msdn.microsoft.com/en-us/library/ms531076(VS.85).aspx
Upvotes: 0
Reputation: 38298
You need to tell IE about the tag first. Add this line somewhere before calling addDateFormatInfo()
:
document.createElement("showDateFormat");
IE will now initialize the element correctly - you can treat it just like any other element. Firefox does this automatically.
Here's the source blog post:
http://ajaxian.com/archives/getting-html-5-styles-in-ie-7
Support for createElement()
starts in IE7 - though I works fine in FF3.0.15
<!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=utf-8" />
<title>Home | My Website</title>
</head>
<body>
<script type="text/javascript">
document.createElement("showDateFormat");
function addDateFormatInfo(){
var dateFormatHolder = document.getElementsByTagName("showDateFormat");
if ( dateFormatHolder ){
for ( i = 0 ; i < dateFormatHolder.length; i++ ){
dateFormatHolder[i].innerHTML = '<div class="infoSmall" ><span>(mm/dd/yyyy)</span></div>';
}
}
}
</script>
<div>
Date From:<showDateFormat/>
</div>
<div>
Date From:<showDateFormat/>
</div>
<div>
Date From:<showDateFormat/>
</div>
<div>
Date From:<showDateFormat/>
</div>
<p><input type="button" value="click me" onclick="addDateFormatInfo()" />
</p>
</body>
</html>
Upvotes: 5