前置.css文件 - Firefox vs IE

时间:2009-10-08 06:38:09

标签: javascript jquery html css

当我使用这个

时,我发现IE与Firefox有不同的行为

$( '头')前面加上( '');

基本上只是在HEAD标签内添加主题2.css(用于主题目的)。我这样做是因为我不想加载它因为我使用csspreload http://www.filamentgroup.com/lab/update_automatically_preload_images_from_css_with_jquery/

在Firefox中,顶部的.css文件将由以下文件优先接管。这很好用!

在IE中,稍后添加到HEAD中的新.css文件将生效。这无论是在顶部还是底部。

  1. 如何解决IE的这种行为?
  2. 是否有不同的图像加载器,我可以将.css文件输入参数并从那里加载?当前必须在html中的链接中看到.css文件。
  3. 由于

2 个答案:

答案 0 :(得分:2)

我并不完全清楚你要在这里完成什么 - 你是否试图动态地向页面添加一个样式表而不会影响页面,以便预加载它的图像?

如果是这样,这段代码可能是您想要的:

$('link[rel="stylesheet"][href="theme-2.css"]').attr('disabled', 'disabled');

这将禁用样式表,但它将保持加载状态。如果您希望将来重新打开它,您可以这样做:

$('link[rel="stylesheet"][href="theme-2.css"]').removeAttr('disabled');

修改 我想,你真正想要的是disabled属性的功能。实际上,您可以在添加样式表时对其进行设置,但不会将其应用于页面。上面的代码片段只演示了如何动态执行此操作。

答案 1 :(得分:0)

首先,可能没有一种方法可以在Internet Explorer中成功执行您想要的操作。除非在IE中加载相关样式表后再次添加现有样式表。

其次,为什么不修改现有的插件?

用以下方式调用:

$.preloadCssImages({extra: [{href: "/css/styles.css"}]});

或者,如果您有多个额外的CSS文件:

$.preloadCssImages({extra: [{href: "/css/styles.css"}, {href: "/css/styles2.css"}]});

然后,在文件底部的“parseCSS(document.styleSheets)”行之后插入:

if (settings.extra)
{
    parseCSS(settings.extra);
}

轻松自负。