【问题标题】:jQuery to change style sheet (like a theme switcher), doesn't load CSS in IEjQuery 更改样式表(如主题切换器),不在 IE 中加载 CSS
【发布时间】:2012-01-04 06:34:24
【问题描述】:

所以页面在这里:http://www.sumsy.com/testing/1/login.html

它可以在 FF 中运行,但不能在 IE 中运行。

问题是:

点击更改主题,选择第二个框(蓝色框),网站应该切换到一个新的主题,

然而,在 IE 中,它只是不加载任何 CSS 样式。我做了一些调试。样式表链接attr其实已经改了。

请各位大神指点一下?

您可以从查看源代码中看到 JS(主要是 theme-switcher.js)和 HTML 代码。如果需要我把代码贴在这里,请告诉我。

【问题讨论】:

  • 您在哪个版本的 IE 中测试它?客气地说,他们每个人都有自己独特的怪癖。
  • 在 IE6 和 IE7 中都有这个问题

标签: jquery css cross-browser internet-explorer-6


【解决方案1】:

动态更新link 元素具有高度可变的行为。当(出于某种疯狂的原因)我想动态更改网站图标链接时,我发现了同样的问题。最好的解决方案是删除旧链接并用新链接替换它:

$('#active-theme').replaceWith($('<link>', {
    id: 'active-theme',
    href: 'themes/' + get_cookie + '/_css/main.css',
    type: 'text/css',
    rel: 'stylesheet' 
}));

【讨论】:

  • 感谢您的回复。但是,我尝试使用您的代码,它仍然无法在 IE6、7 中运行
  • 你的页面对我也不起作用(在 Chrome 中),因为像 sumsy.com/testing/1/themes/theme03/_css/main.css 这样的 URL 实际上不起作用。
  • 哦,因为到目前为止我只设置了 2 种样式。请尝试更改主题选项卡中的前 2 个框。所以只有主题/style1/_css/main.css 或主题/style2/_css/main.css 会加载
  • 它适用于 FF。但不确定为什么它在 chrome 或 IE 中不起作用。最糟糕的是,它没有给我任何错误。很难找出问题所在。
  • 看起来问题出在 main.css 实际上它也从其他 css 文件中导入了代码。看起来 IE 在链接被 jquery @import url('reset.css') 更改后不执行导入; @import url('styles.css'); @import url('layout.css'); @import url('widgets.css'); @import url('widgets.old.css');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
相关资源
最近更新 更多