innerHTML 在 FF 中工作,但在 IE 中不工作!

Posted

技术标签:

【中文标题】innerHTML 在 FF 中工作,但在 IE 中不工作!【英文标题】:innerHTML working in FF but not in IE! 【发布时间】:2010-12-20 14:13:24 【问题描述】:

在我的 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 中不行。可能是什么问题?

【问题讨论】:

en.wikipedia.org/wiki/Doctype 【参考方案1】:

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

document.createElement("showDateFormat");

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

这是源博客文章:

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

从 IE7 开始支持 createElement() - 虽然我在 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>

【讨论】:

【参考方案2】:

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

Windows Internet Explorer 的支持 用于 HTML 页面上的自定义标签 需要定义命名空间 为标签。否则,自定义标签 当 文档被解析

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

【讨论】:

【参考方案3】:

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

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

而不是简单的:

<showDateFormat/>

使用

<IETag:showDateFormat/>

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

【讨论】:

以上是关于innerHTML 在 FF 中工作,但在 IE 中不工作!的主要内容,如果未能解决你的问题,请参考以下文章

如果找不到源图像,如何显示替代图像? (在 IE 中工作但在 Mozilla 中不工作的错误)[重复]

Django,Javascript:通过 javascript innerHtml 注入 DOM 的表单在提交时崩溃 google chrome 选项卡。在 IE 中工作

在 FF、IE6 和 IE7 中工作的 HTML 中垂直和水平居中的实用解决方案

jQuery Ajax 在 IE 6/7/8 中不工作,在 FF/Safari/Chrome 中工作

在FF3中工作时,IE8中的对象未定义错误

网站登录隐藏在 IE 中但在 chrome 中工作 [关闭]