有没有办法删除<head>
,将其放在.php文件中,然后根据屏幕分辨率使用javascript if语句调用某个头?
现在我知道如何做明显的if语句,并且我已经阅读了由于客户端和服务器端在javascript中调用php的复杂性,但是,在源代码中我可以看到脚本出现,但是没有不行。
有什么想法吗?
答案 0 :(得分:1)
从你的评论中,你说你想要改变的是“主要是样式表”,我认为你想根据屏幕分辨率和/或其他条件应用不同的样式表。你可以做,但不是你描述的方式。请尝试以下内容:
<html>
<head>
<script>
if (whateveryourconditionis) {
document.write('<link rel="stylesheet" href="sheet1.css" type="text/css">');
} else (someothercondition) {
document.write('<link rel="stylesheet" href="sheet2.css" type="text/css">');
document.write('<link rel="stylesheet" href="sheet3.css" type="text/css">');
} else {
document.write('<link rel="stylesheet" href="default.css" type="text/css">');
}
</script>
</head>
<body>
</body>
</html>
我通常不会推荐document.write()
,但是为了这个目的,当页面仍在加载时,它比其他选项更加精细和简单。如果您愿意,可以使用document.createElement();
,然后设置适当的属性并将其附加到<head>
,但除非您想在页面加载后更改样式表,否则我不会打扰它。 / p>
你也可以使用像YepNope.js那样的条件加载器库(不要担心它强调加载JS文件,它也会做CSS)。
答案 1 :(得分:0)
相反,您可以尝试使用在加载头后调用的javascript来修改头部。 javascript在页面加载之后或当页面加载时在浏览器上运行,因此显然头部将始终位于第一位。但你总是可以使用不同头的javascript加载另一个页面。
所以你的所有page.php?type = 1
并且您的javascript将加载并基于任何逻辑重新加载page.php与不同的typeid。
page.php将有一个if else块,它将向浏览器打印不同的头部。
希望这会有所帮助...
答案 2 :(得分:0)
要调用PHP脚本,请查找一些Ajax调用。例如,以下代码:
<script type="text/javascript">
function _CallPHP() {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
alert("PHP has been executed");
}
}
xmlhttp.open("GET","/phpscript.php",true);
xmlhttp.send();
}
</script>