May*_*yur 6 html javascript 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>
Run Code Online (Sandbox Code Playgroud)
此外,如果我更改上面的<div>标签和<link>标签序列,它也可以在Internet Explorer中正常工作.
x.innerHTML='<div>abc</div><link \"http://test.com/css/template.css\" rel=\"stylesheet\">';
Run Code Online (Sandbox Code Playgroud)
请指教!谢谢.
编辑:这是Internet Explorer与ExtJs的错误.更多信息在
http://www.sencha.com/forum/showthread.php?30110-internet-explorer-autoLoad-css-not-applied
Koo*_*Inc 11
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);
}
Run Code Online (Sandbox Code Playgroud)
虽然引用声明link标签可能只出现在标题中,但是如果你使用我提供的代码,在我尝试的所有浏览器(IE,firefox,chrome)中,样式链接确实有用.看到这个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';
Run Code Online (Sandbox Code Playgroud)
首先,你缺少一个href属性<link>.
<link href=\"http://test.com/css/template.css\" rel=\"stylesheet\" />
Run Code Online (Sandbox Code Playgroud)
并且不要将链接和样式标记放入<body>.将它们注入<head>
var link = document.createElement("link");
link.href = "http://test.com/css/template.css";
link.rel = "StyleSheet";
document.head.appendChild(link);
Run Code Online (Sandbox Code Playgroud)
我认为问题在于必须<link>是一个空元素。将您的代码更改为:
x.innerHTML='<link \"http://test.com/css/template.css\" rel=\"stylesheet\" /><div>abc</div>';
// this is the trick ^^^
Run Code Online (Sandbox Code Playgroud)
编辑:我还没有测试过这个,但这是伤害我眼睛的第一件事。
EDIT2: <link>标签应该只出现在 -section 内部<head>......我希望你知道你想要做什么。
| 归档时间: |
|
| 查看次数: |
24749 次 |
| 最近记录: |