在javascript if语句中调用.php文件

时间:2011-11-25 10:05:48

标签: php javascript if-statement head

有没有办法删除<head>,将其放在.php文件中,然后根据屏幕分辨率使用javascript if语句调用某个头?

现在我知道如何做明显的if语句,并且我已经阅读了由于客户端和服务器端在javascript中调用php的复杂性,但是,在源代码中我可以看到脚本出现,但是没有不行。

有什么想法吗?

3 个答案:

答案 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>