html - Firefox 没有遵守 rel=stylesheet 链接的 'disabled' 属性

标签 html css firefox stylesheet

我的网站需要加载两个主题。第二个主题可以由用户打开/关闭。我目前正在通过在链接中使用 disabled 标记来完成此操作,如下所示:

<link rel="stylesheet" href="{{main css}}">
<link rel="stylesheet" title="theme-white" href="{{2nd theme css}}" disabled>

然后我在 JavaScript 中切换 disabled

这在 Safari (Mac)、Chrome (Mac/Windows) 和 IE10 中效果很好。但是,Firefox(Mac 和 Windows)似乎在页面加载时忽略了 disabled 标记,并在初始加载时显示第二个主题(因为它是第二个加载的)。但是,当我手动切换 disabled 时,Firefox 会响应该标签并将开始打开/关闭第二个主题。

我怎样才能实现这个目标?

最佳答案

我找到了一个似乎在所有浏览器中都有效的解决方法。这似乎不是最好的方法,但我想分享。

由于一些原因,这并不理想,但我试图使其精简并且没有任何外部库依赖性,如 jQuery,因为这需要放在你的 head 标签中,你可能还没有加载你的那时的 JS 库。

<script>
    window.onload = function() {
        var path  = "css";
        var style   = document.createElement( 'link' );
        style.rel   = 'stylesheet';
        style.href   = '/your/css/url.css';
        document.getElementsByTagName( 'head' )[0].appendChild( style );
        style.disabled = true;
    };
</script>

注意:Firefox 似乎只响应已添加到 DOM 后应用于样式表的禁用标记。我仍然觉得我错过了什么,因为这看起来很疯狂。

因此,如果您将 style.disabled = true; 添加到文档之前,那么 Firefox 将无法识别样式表的禁用状态。

关于html - Firefox 没有遵守 rel=stylesheet 链接的 'disabled' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237591/

相关文章:

Firefox:网络监视器:如何调试 JSON 有效负载?

php - 如何防止在重新加载时向数据库发送数据?

javascript - 如何通过拖放重新排序 4 个 div(使用 angular2/4)?

css - 在部门之间移动 YouTube iframe 播放器?

html - 垂直对齐不同大小的字体

css - 如何使用 CSS 为 Mozilla Firefox 创建自定义滚动条?

firefox - 在不安装插件的情况下禁用 Firefox 同源策略

html - 如何使电子邮件模板同时响应移动设备和桌面设备?

html - 服务器客户端通信 : Long Polling, Comet 和服务器发送的事件 (SSE)

css - Firefox:图像过渡,缓和到灰度