jQuery.append()字符串被IE7html解析器乱码

jQuery .append() string being garbled by IE7 html parser

本文关键字:IE7html append 字符串 jQuery      更新时间:2023-09-26

我终于很好地关闭了jQuery AJAX,并创建了我的网站,但现在我已经到了可怕的IE错误修复阶段。

我正在尝试做一些非常基本的事情:为IE7用户插入一个额外的css。我有这个代码:

if(navigator.appVersion.indexOf("MSIE 7.0") != -1)
    {
    var ieCSS = '<link rel="stylesheet" type="text/css" href="common-ie.css" />';
    $("head").append(ieCSS);
    }

css未应用于页面。然而,我用alert($("head"(.html(((测试了它,发现由于某种原因,浏览器正在解析我插入的html中的大多数引号和/。这就是结果:

'<LINK rel=stylesheet type=text/css href="common-ie.css">'

为什么会发生这种情况,我该如何避开它?

只需执行以下操作,而不用使用javascript代码。将其插入head标记中,就像插入样式表一样。这将只显示在IE 7 上

<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="common-ie.css" />
<![endif]-->
var ieCSS = "<link type='text/css' href='common-ie.css' />";

你的报价有点偏离了。

您的bug与IE 7无关。这只是一个报价错误。这是固定版本:

var ieCSS = "<link type='"text/css'" href='"common-ie.css'" />";

你可以做,但还没有测试过。

var ua = $.browser;
    if ( ua.msie && ua.version.slice(0,3) === "7.0" ) {
          var ieCSS = "<link type='"text/css'" href='"common-ie.css'" />";
        $("head").append(ieCSS);    
          }