我有以下文件:
<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是否不支持以这种方式更改样式表引用?有一个更好的方法吗?
与其在单个链接中更改工作表,不如尝试使用其他样式表。有关使用备用样式表的信息,请参见以下链接:
http://www.alistapart.com/articles/alternate/