[php] モバイル版ページにアクセスする際に「PC版」を選択しても元のモバイル版ページに戻らない「PC版ページにアクセスすると、自動的にモバイル版ページにジャンプします」(クリックするとリンクが開きます) 携帯電話からPCページにアクセスすると、自動的にモバイル版ページにジャンプしますが、問題があります。 . 携帯電話ユーザーがモバイル版ページにアクセスした後も、PC 版ページを参照する必要がありますか?このとき、「PC版」をクリックしてもJSの機能によりモバイル版のページに戻ってしまいます。
もちろん、これはユーザーの仕事であり、モバイル ブラウザーにブラウジング ロゴを変更させるだけであると言えますが、プログラムはよりユーザー フレンドリーになるように作成する必要があります。
現時点では、php を使用できます。実際、Session オブジェクトとページの条件付き出力はどの Web プログラミング言語でも使用できるため、JSP、.NET、および vbscript はすべて同じです。 PHP プログラミング コードは短く、誰でも理解できるため、ここでは PHP を例として取り上げます。コンピュータ版のセッションにアクセスしたいユーザーを保存します。 PC版がモバイル版のページにジャンプするJSスクリプトを出力する前に、まずPC版のセッションにアクセスしたいユーザーがいるかどうかを判断し、存在しない場合はモバイル版にジャンプします。追加理由は0です。モバイル版の一部のユーザーが「PC版」→「モバイル版」→「PC版」を選択しているため、この時点でSessionオブジェクトが作成されており、出力することができません。空判定のジャンプコードについて。
iphone3GS に似たロゴを使用してブラウザで次の効果を実現したいと考えています。この場合、ユーザーがページのどのバージョンを選択しても、そのバージョンが提供されます。
プログラミングを簡単にするために、モバイル バージョンのページは次のように配置する必要があります。コンピュータ バージョンのページが xx.html である場合、リダイレクトを簡単にするために、モバイル バージョンのページには ml_xx.html という名前を付ける必要があります。これが ml_ プレフィックスです。
上の写真はこのプロジェクトのページで、このうち ml_pc1.php と ml_pc2.php がモバイル版のページ、pc1.php と pc2 です。 php はパソコン版ページ、uaredirect.js は「[JavaScript] JavaScript により、モバイルブラウザが PC 版ページにアクセスすると自動的にモバイル版ページにジャンプします」(クリックするとリンクが開きます)にあります。携帯電話からPCページにアクセスすると、自動的にモバイル版のページにジャンプします。 ml2pc.php と pc2ml.php はバックエンド処理ページです。
1. pc1.php、pc2.php パソコン版ページ
.php
前述したように、モバイル版から「PC版」を選択した後に元のモバイル版ページに戻らない機能を実現するには、まず、モバイル版のページに戻りたいユーザーがいるかどうかを判断する必要があります。 PC 版のセッションにアクセスし、それを uaredirect.js に渡してモバイル ブラウザーであるかどうかを判断し、対応するモバイル版のページにジャンプします。このコードはページのヘッダーに配置されています。ジャンプする場合は、以下の PC ページのコンテンツを読み込む必要はありません。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--这是是判断是否要跳到手机版--> <? if(isset($_SESSION["is_ml"])){ if($_SESSION["is_ml"]==0){ ?> <script src="js/uaredirect.js" type="text/javascript"></script> <script> var url=window.location.href; var loc = url.substring(url.lastIndexOf('/')+1, url.length); uaredirect('m1_'+loc); </script> <? } } ?> <title>pc2</title> </head> <body> <h1>pc2</h1> <a href="pc1.php">pc1</a> <!--这里开始是页脚的代码--> <hr /> <h2><a id="pc2ml">手机版</a>|电脑版</h2> <script> var url=window.location.href; var loc = url.substring(url.lastIndexOf('/')+1, url.length); document.getElementById("pc2ml").href="pc2ml.php?url="+loc; </script> </body></html>
同時に、PC 版のハイパーリンク a タグはモバイル版のページとは関係がなく、すべて PC 版のページに接続されているだけであることに注意してください。
pc1.php のコードは基本的に pc1.php のコードと同じです。唯一の違いは、ページの中央にある自由な再生部分が実際にパッケージ化できることです。 PHP の include ステートメントを使用して参照されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?if(isset($_SESSION["is_ml"])){ if($_SESSION["is_ml"]==0){?><script src="js/uaredirect.js" type="text/javascript"></script><script>var url=window.location.href;var loc = url.substring(url.lastIndexOf('/')+1, url.length); uaredirect('m1_'+loc);</script><? }}?><title>pc1</title></head><body><!--以上页头的内容不改变,可以打包--><h1>pc1</h1><a href="pc2.php">pc2</a><hr /><!--以下页头的内容不改变,可以打包--><h2><a id="pc2ml">手机版</a>|电脑版</h2><script>var url=window.location.href;var loc = url.substring(url.lastIndexOf('/')+1, url.length); document.getElementById("pc2ml").href="pc2ml.php?url="+loc;</script></body></html>
モバイル版ページにはそのような判定コードがありません。モバイル バージョン ページ上のすべてのハイパーリンクは、モバイル バージョン ページにのみ接続されます。これはページの最後にあるコンピューター版へのリンクであり、php ml2pc.php にジャンプします。
ここには 1 ページのみ掲載されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>ml1</title></head><body><h1>ml1</h1><a href="ml_pc2.php">ml2</a><hr /><h2>手机版|<a id="ml2pc">电脑版</a></h2><script>var url=window.location.href;var loc = url.substring(url.lastIndexOf('_')+1, url.length); document.getElementById("ml2pc").href="ml2pc.php?url="+loc;</script></body></html>
後で ml2pc.php に処理させます。
3. 最後に、最も重要な 2 つのセッション処理ページは、実際には何もありません。リダイレクトとセッション設定、および変数取得ステートメントです。ml2pc.php:
<?php$url=$_REQUEST["url"];session_start();$_SESSION["is_ml"]=1;echo "<script>window.location.href='${url}'</script>"; ?>
この時点で、プロジェクト全体が完了しました。ユーザーはブラウザ識別子 UA を変更する必要がなくなりました。
<?php$url=$_REQUEST["url"];session_start();$_SESSION["is_ml"]=0;echo "<script>window.location.href='ml_${url}'</script>"; ?>