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?
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
Full Example
<!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>
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
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