小编典典

动态更改样式表路径在IE和Firefox中不起作用

ajax

我有以下文件:

<html>
<head>
<title></title>
<link rel="css" type="text/css" href="/empty.css" title="css" />
<script type="text/javascript" src="/Prototype"></script>
<script type="text/javascript">
function load_content()
{
  var d = new Date();
  new Ajax.PeriodicalUpdater('content', '/DOC?'+d.getTime(),
  {
    method: 'post',
    frequency: 5,
    onSuccess: function(transport) {
            for(i=0; (a = document.getElementsByTagName('link')[i]); i++) 
            {
                if(a.getAttribute('rel') == 'css' && a.getAttribute("type") == 'text/css') 
                {
                    a.href = '/CSS?'+d.getTime();
                }

            }
    }
  });

}
</script>

</head>

<body>

<div id="content"></div>

<script type="text/javascript">
    load_content();
</script>

</body>
</html>

注意:忽略d.getTime()调用…这些只是为了解决IE无法从AJAX调用加载新页面的问题,因为它的缓存方案过于激进。

基本上,当它在/ DOC处重新加载文件时,应该将当前样式表设置为/ CSS处的文件… DOC和CSS都在不断变化。

奇怪的是,在Chrome浏览器中效果很好。将DOC加载到“内容”
div中,并将样式表设置为CSS,并将CSS应用于页面。我可以更改CSS页面并用5秒钟的时间进行更改,刷新页面后,CSS也会被刷新。

但是,在IE和Firefox的HTML将加载,我可以看到,样式表链接的href属性 IS 越来越改为“/ CSS
+的getTime()”,但是,而HTML的负荷,CSS是 从未
应用到该页面。我什至可以更改DOC的内容并进行更新,但是css从未应用过。它只是一个没有样式的页面。

Firefox和IE是否不支持以这种方式更改样式表引用?有一个更好的方法吗?


阅读 222

收藏
2020-07-26

共1个答案

小编典典

与其在单个链接中更改工作表,不如尝试使用其他样式表。有关使用备用样式表的信息,请参见以下链接:

http://www.alistapart.com/articles/alternate/

2020-07-26