0

以下 JavaScript 在 Chrome、Firefox 和 Safari 上运行良好 - 但在 Internet Explorer 上无法运行。我脑子里有这个 JavaScript。

<script type="text/javascript">
    $(document).ready(function(){

    if($(".company-color").size()>0){
            if (document.createStyleSheet){
                document.createStyleSheet('company-color.css');
            }
            else {
                $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/company-color.css' type='text/css' media='screen' />"));
            }
        }
    });
</script>
<script type="text/javascript">
    $(document).ready(function(){

    if($(".enterprise-color").size()>0){
            if (document.createStyleSheet){
                document.createStyleSheet('enterprise-color.css');
            }
            else {
                $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/enterprise-color.css' type='text/css' media='screen' />"));
            }
        }
    });
</script>
<script type="text/javascript">
    $(document).ready(function(){

    if($(".media-color").size()>0){
            if (document.createStyleSheet){
                document.createStyleSheet('media-color.css');
            }
            else {
                $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/media-color.css' type='text/css' media='screen' />"));
            }
        }
    });
</script>
<script type="text/javascript">
    $(document).ready(function(){

    if($(".contact-color").size()>0){
            if (document.createStyleSheet){
                document.createStyleSheet('contact-color.css');
            }
            else {
                $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/contact-color.css' type='text/css' media='screen' />"));
            }
        }
    });
</script>

JavaScript 在页面正文中查找特定的 div 类,然后根据找到的内容使用特定的 css 文件,如下所示:

<div class="company-color">&nbsp;</div>

上面的 pull 在以下样式表中:

/templates/joostrap-rmg/css/company-color.css

知道 Internet Explorer 的问题是什么吗?理想情况下需要在 IE9+ 中工作

4

1 回答 1

2

如 MSDN 中所述,document.createStyleSheet自 IE11 以来不受支持:http: //msdn.microsoft.com/en-us/library/ie/ms531194 您使用哪个 IE?

因为你已经使用了 jQuery,所以我建议以 jQuery 方式创建样式表:

$('<link />').attr('rel', 'stylesheet').attr('href', 'url...');

更简单,只是总是回退到将标签else附加到的部分:<link><head>

<script type="text/javascript">
    $(document).ready(function () {
        if ($(".company-color").size() > 0) {
            $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/company-color.css' type='text/css' media='screen' />"));
        }
        if ($(".enterprise-color").size() > 0) {
            $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/enterprise-color.css' type='text/css' media='screen' />"));
        }
        if ($(".media-color").size() > 0) {
            $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/media-color.css' type='text/css' media='screen' />"));
        }
        if ($(".contact-color").size() > 0) {
            $("head").append($("<link rel='stylesheet' href='/templates/joostrap-rmg/css/contact-color.css' type='text/css' media='screen' />"));
        }
    });
</script>

为简洁起见,我结合了多个<script>标签和$(document).ready()处理程序。

于 2013-08-12T08:47:06.367 回答