我有一个PHP表单,我需要在提交后强制重新加载CSS。我该怎么做?
谢谢!
答案 0 :(得分:3)
我能想到保证CSS重新加载的唯一方法是更改css文件的名称。
你可以创建一个重写规则,将“... mycssfile.css1234”类型的所有地址重定向到“... mycssfile.css”,并在你的php中,在你的css文件位置的末尾添加一个随机的4位数字。
编辑:要反映对此答案的评论,您可以执行以下操作:
<link rel="STYLESHEET" href="mycssfile.css?r=<?php echo rand(1, 999999); ?>" type="text/css">
哪会强制浏览器更新css页面,因为css文件的地址发生了变化,尽管它实际上会链接到同一个css文件。
答案 1 :(得分:1)
你可以通过Javascript。
<form id="form" onsubmit="cssChange()" action=".....
例如cssChange函数:
function cssChange() {
var a = document.getElementsByTagName('link');
var random = Math.floor(Math.random()*11);
if(a.getAttribute('rel') == 'css')
{
a.attr('src', 'new-css.css?' + random);
}
}
您可以在css文件中定义 .newClass 类。
答案 2 :(得分:0)
是否有某些原因导致整页无法重置?因为如果没关系,那么表单可以只提交到页面本身,action
get
,并且(下拉|输入|单选按钮)作为参数提交(类似“css”) )。
当页面加载时,PHP可以检查变量:
$css = empty($_GET['css']) ? $_GET['css'] : 'default';
然后,它可以根据该变量回显样式表的href
:
<link href="<?php echo htmlspecialchars($css, ENT_QUOTES, 'UTF-8') ?>.css" ... />