【问题标题】:IE not displaying strings with HTML tags passed to innerHTMLIE 不显示带有传递给 innerHTML 的 HTML 标记的字符串
【发布时间】:2011-06-19 18:07:26
【问题描述】:

我将一个包含 HTML 标记(中心、ul 等)的字符串传递给一个函数,然后该函数将其放置在 div、span 或 p innerHTML 中。这适用于所有浏览器,但 IE 不显示任何内容。我跟踪了标签的问题,因为纯文本确实显示在 IE 中。

我使用的是 IE 9。 贴出来的代码有点长,不过思路是这样的:

str='<center>Some text</center>';
displayText('divId',str);
function displayText(id,str)
{ document.getElementById(id).innerHTML=str; }

对不起大家。我发现我无法设置 [P] 元素的 innerHTML。我将其更改为 [span] 并且有效。

【问题讨论】:

  • 您能否添加一些带有输入输出的示例代码,并指定您尝试使用的 IE 版本? IE是一个奇怪的野兽。每个版本的 IE 之间存在差异,这让 Web 开发者的生活非常困难。
  • 确保您尝试插入的html是有效的html
  • 如果“divId”真的&lt;div&gt; 的“id”值,示例代码将在 IE 中工作。
  • 您最近发布的示例即使在 IE 5.5 中也可以使用:jsbin.com/esado5
  • “我发现我无法设置[P]元素的innerHTML”那你可以接受一个答案。

标签: javascript internet-explorer innerhtml


【解决方案1】:

对于&lt;table&gt;&lt;select&gt;&lt;p&gt; 元素,innerHTML 不是一个好主意(或需要解决方法)。这是 known limitation 在旧版本中的 IE

另见此问题IE innerHTML error

【讨论】:

  • 感谢您的提示。我尝试了这些标签并得到了答案。我真的应该知道,对表格有同样的问题,但发现我可以用 TD 标签来做。
【解决方案2】:

很高兴您找到了解决方案..

您应该考虑使用jquery。这样您就不必担心所有跨浏览器的实现,而是专注于在您的站点/应用程序上添加/增强功能和用户体验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多