1

有什么方法可以删除<head>.php 文件,然后在其位置使用 javascript if 语句根据屏幕分辨率调用某个头部?

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

有任何想法吗?

4

3 回答 3

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>,但除非您想在页面加载后更改样式表,否则我不会为此烦恼。

您还可以使用条件加载器库,例如YepNope.js(不要担心它强调加载 JS 文件,它也会加载 CSS)。

于 2011-11-25T10:38:15.797 回答
0

相反,您可以尝试使用加载头后调用的javascript修改头。javascript 在页面加载之后或加载时在浏览器上运行,因此显然头部总是首先出现。但是您始终可以使用具有不同头部的 javascript 加载另一个页面。

所以你可以全部 page.php?type=1

并且您的 javascript 将加载并基于具有不同 typeid 的任何逻辑重新加载 page.php。

page.php 将有一个 if else 块,它将向浏览器打印不同的头。

希望这可以帮助...

于 2011-11-25T10:12:55.830 回答
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>
于 2011-11-25T10:14:42.407 回答