1

在我的 JSP 中,我使用了一个自定义标签<showDateFormat/>
,例如:

Date From:<showDateFormat/>

在我的 common.js 文件中,我有

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>';                       
        } 
    }
}

所以在我的页面中,只要showDateFormat使用了标签,它就会显示(mm/dd/yyyy). 它在 FF 中运行良好,但在 IE 中不行。可能是什么问题呢?

4

3 回答 3

5

你需要先告诉 IE 标签。在调用之前将此行添加到某处addDateFormatInfo()

document.createElement("showDateFormat");

IE 现在将正确初始化元素 - 您可以像对待任何其他元素一样对待它。Firefox 会自动执行此操作。

这是源博客文章:

http://ajaxian.com/archives/getting-html-5-styles-in-ie-7

支持createElement()在 IE7 中启动 - 虽然我在 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>
于 2009-11-26T07:34:56.643 回答
0

你需要一个 IE 的自定义标签,使用命名空间:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:IETag>

而不是平原:

<showDateFormat/>

利用

<IETag:showDateFormat/>

自定义标签更强大,特别是在绑定到 HTC 行为时,但不幸的是它们仍然是 IE 特定的,尽管您可以设法使用 JQUERY 为所有浏览器编写代码,在此处阅读更多信息: 在 IE 中使用自定义标签

于 2009-11-26T08:02:06.713 回答
0

请查看 Internet Explorer 中的自定义标记支持。

Windows Internet Explorer 对 HTML 页面上的自定义标记的支持要求为标记定义命名空间。否则解析文档时自定义标签被视为未知标签

http://msdn.microsoft.com/en-us/library/ms531076(VS.85).aspx

于 2009-11-26T07:44:03.290 回答