javascript - .InnerHTML 在 Internet Explorer 中无法正常工作

标签 javascript html string internet-explorer innerhtml

我想为 HTML 控件的 innerHTML 分配一个链接标记。但这在 Internet Explorer 中无法正常工作。但是,当我尝试分配 <link> 以外的任何内容时& <style>标记它工作正常。

<html>
<head>
<script type="text/javascript">
function getValue()
  {
  var x=document.getElementById("myHeader");
  x.innerHTML='<link \"http://test.com/css/template.css\" rel=\"stylesheet\"><div>abc</div>';
  alert(x.innerHTML);
  }
</script>
</head>
<body>

<h1 id="myHeader" onclick="getValue()">Click me!</h1>

</body>
</html>

此外,如果我更改 <div> 的顺序标记和 <link>上面的标签在 Internet Explorer 中也能正常工作。

x.innerHTML='<div>abc</div><link \"http://test.com/css/template.css\" rel=\"stylesheet\">';

求推荐!谢谢。

编辑:这是带有 ExtJs 的 Internet Explorer 中的错误。更多信息在

http://www.sencha.com/forum/showthread.php?30110-internet-explorer-autoLoad-css-not-applied

最佳答案

innerHTML 在 IE 中不起作用,但使用 DOM 方法时它将:

function getValue()
{
  var x=document.getElementById("myHeader")
    , link = document.createElement('link')
    , div = document.createElement('div');
  x.innerHTML = '';
  x.appendChild(link);
  x.appendChild(div);
  div.innerHTML = 'abc';
  link.href = 'http://test.com/css/template.css';
  link.rel = 'stylesheet';
  alert(x.innerHTML);
}

尽管 reference表示 link标签可能只出现在标题中,有趣的是,如果您使用我提供的代码,在我尝试过的所有浏览器(IE、firefox、chrome)中,样式链接确实有效。参见 this jsfiddle (我在这里使用了来自 test.com 的真实 css-href ;-)

如果你想放置 link在它的合法部分(<head>),使用:

var header = document.getElementsByTagName('head')[0];
  , link = document.createElement('link');
header.appendChild(link);
link.href = 'http://test.com/css/template.css';
link.rel = 'stylesheet';

关于javascript - .InnerHTML 在 Internet Explorer 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243756/

相关文章:

java - 验证字符串是用 Java 编码的 UTF-8

javascript - Jquery在具有不同索引的div中显示文本

html - 如何消除滚动文本跳转

html - CSS:大水平滚动条的小页脚问题

ios - 获取字符串显示的可选

C++ - 获取对字符串子字符串的常量访问

javascript - 如何将附加在 formData 中的 blob 发送到 php

javascript - 在 mvc4 中访问 javascript 中的临时数据

javascript - 从javascript中的一组二维数组中提取偶数数组

javascript - 函数显示和隐藏表单元素