我正在使用一个名为facebox的jquery插件。效果很好,但我面对!有问题。看起来它的 iframe 方法导致我的浏览器占用了目标页面中加载的 css。
这就是我在 jquery 就绪状态下在我的页面中调用它的方式。
$('a.participate').click( function(){
$.facebox({
iframe: '" . $urlparticipate . "',
rev: 'iframe|550|550'
});
return false ;
});
其中$urlparticipate 是将在 iframe 中打开的 URL。我在面框中仔细观察.js我发现了以下方法,插件似乎使用它来创建 iframe。
function fillFaceboxFromIframe(href, klass, height, width) {
$.facebox.reveal('<iframe scrolling="auto" marginwidth="0" width="'+width+'" height="' + height + '" frameborder="0" src="' + href + '" marginheight="0"></iframe>', klass)
}
如何防止 css 被缓存?我知道它正在被缓存,因为我更改了元素的 css 样式。我什至更改了一些正在加载的js代码,并且仍在加载旧代码。
我还尝试了以下方法:
在头部前端添加目标页面
meta http-equiv="Cache-control" content="no-cache"
meta http-equiv="Pragma" content="no-cache"
meta http-equiv="Expires" content="0"
我尝试从代码隐藏(php)添加一些标头
标头("缓存控制:无缓存");
标头("Pragma: no-cache");
一切都没有成功..我错过了什么?
您可以随时尝试对页面上的 CSS 引用进行"版本控制"。有好的和不太好的方法可以做到这一点:每次进行更改时都附加单个静态版本号,或者随机生成的 GUID,这将有效地强制对页面的每个请求检索 CSS 文件。更好的选择是静态的,如下所示:
<link type="text/css" rel="stylesheet" href="cssfile.css?1.12" />
尝试抛出带有 CSS 文件名(通常是版本号)的 var,以便浏览器无法缓存它。类似 foo.css?ver=bar