次のコードを使用して、JavaScript変数をPHPに渡すブラウザビューポートベイを取得しようとしています。
最初のコード
<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
// output the geometry variables
echo "Screen width is: ". $_GET['width'] ."<br />\n";
echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
// pass the geometry variables
// (preserve the original query string
// -- post variables will need to handled differently)
echo "<script language='javascript'>\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&width=\" + screen.width + \"&height=\" + screen.height;\n";
echo "</script>\n";
exit();
}
?>
上記のコードは画面の幅と高さを示しており、これはIE6、7、8を含むすべてのブラウザーで正常に機能します。
しかし、私がそれをからscreen.width
に変更 window.innerWidth
し た瞬間screen.height
window.innerHeight
このような . "&width=\" + window.innerWidth + \"&height=\" + window.innerHeight;\n";
すべてのブラウザで正常に動作しますが、IE6、7、8の場合は
Screen width is: undefined
Screen height is: undefined
解決策を求めてネットサーフィンをしているときに、別のコードを見つけました。
2番目のコード
<script type="text/javascript">
var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight;
document.write('<p>Your viewport size is '+x+' x '+y+'</p>');
</script>
このコードはブラウザビューポートを表示し、IE6、7、8を含むすべてのブラウザで正常に機能します。
phpファイルで両方のコードを一緒に実行すると、最初のコードはundefined
abdとして表示され、2番目のコードは完全に機能します。以下のスクリーンショットをご覧ください
私は初心者プログラマーではなく、2番目のコードを最初のロジックに接続することはできません。親切に私がそうするのを手伝ってください。
すべてのブラウザのスクリーンショットは次のとおりです。
Internet Explorer 6
Internet Explorer 7
Internet Explorer 8
Internet Explorer 9
Forefox
グーグルクローム
オペラ
サファリ