[英]How can I embed a conditional comment for IE with innerHTML?
好的,所以我想有条件地添加这行代码;
<!--[if ! IE]> <embed src="logo.svg" type="image/svg+xml" /> <![endif]-->
使用方法:
document.getElementById("logo") .innerHTML='...';
在if()/else()
语句中,它不写! 如果我摆脱了选择性注释( <!--[if ! IE]><![endif]-->
)并仅放置SVG( <embed src="logo.svg" type="image/svg+xml" />
)工作! 我该怎么办?
我找到了解决方法,但我认为在Android浏览器中,该事件将弹出两次。
here's what I've done ( and its Validated stuff!);
<!DOCTYPE html>
<html>
<head>
<META CHARSET="UTF-8">
<title>SVG Test</title>
<script type="text/javascript">
//<![CDATA[
onload=function()
{
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
document.getElementById("logo").innerHTML='<img src="fin_palais.png"/>';
}
}
//]]>
</script>
</head>
<body>
<div id="logo">
<!--[if lt IE 9]>
<img src="fin_palais.png"/>
<![endif]-->
<!--[if gte IE 9]><!-->
<embed src="fin_palais.svg" type="image/svg+xml" />
<!--<![endif]-->
</div>
</body>
最好不要将其放在innerHTML中,而是使用条件来控制它是否进入innerHTML中,如下所示:
var str = '...'; // whatever your other HTML is
<!--[if ! IE]>
str += '<embed src="logo.svg" type="image/svg+xml" />';
<![endif]-->
如果您向我们展示了您要解决的整个问题,则可能有一些方法可以在没有浏览器条件的情况下进行。
您检测不到IE的语法已损坏。
Microsoft推荐的方式-导致标记错误
<![if !IE]>
<p>This is shown in downlevel browsers, but is invalid HTML!</p>
<![endif]>
这种方式也显示作品并且是有效的标记
<!--[if !IE]>-->
<p>This is shown in downlevel browsers.</p>
<!--<![endif]-->
也就是说,@ jfriend00的评论很好。
您的方式开始了一个永远不会关闭的html comment
,因此无法正确处理。 html comments
以第一个打开--
并以第二个关闭。 它们不像常规元素一样用>
结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.