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がロードされ、ロジックに基づいて、異なるタイプIDでpage.phpがリロードされます。

page.phpには、ブラウザに別のヘッドを出力するifelseブロックがあります。

お役に立てれば...

于 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 に答える