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 中垂直和水平居中的实用解决方案