2

私はこれを私のページの先頭に追加しました:

<script type="text/javascript">

if (screen.width <= 800) {
    window.location = "http://m.domain.com";
}

</script>

モバイル版には「メインサイト」というボタンがあります。ボタンをメインサイトに移動したいのですが、モバイルサイトにリダイレクトしません。どうすればこれを行うことができますか?

また、私は彼らに一度だけそこに行ってもらいたいです。だから、次に彼らが私のウェブサイト名を入力するとき、私は彼らをモバイルサイトに連れて行きたいです

4

4 に答える 4

2

メイン サイトに移動するためのボタンが既にある場合。メインサイトをそのボタンにリンクするだけです。さらにできることは、url パラメータを使用してメイン レイアウトをチェックして強制することです。何かのようなもの

<a href="http://www.domain.com?forcelayout=main">Main site</a>

メインレイアウトを強制したい場合は、このパラメータをチェックしてください。または、現在使用しているスクリプトが、やりたいことを自動的に実行します。


次の関数を使用して、クエリ文字列を読み取ります。[ソース]

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

次に、次のようにロジックで使用できます。

if (screen.width <= 800 && getParameterByName('forceLayout') != 'main') {
    window.location = "http://m.domain.com";
}
于 2012-07-05T02:31:41.230 に答える
1

あなたは検査することができますdocument.referrer

<script type="text/javascript">
if (screen.width <= 800 && document.referrer.indexOf('http://m.domain.com') != 0) {
    window.location = "http://m.domain.com";
}
</script>
于 2012-07-05T02:26:40.280 に答える
1

誰かが「メイン サイト」ボタンをクリックしたとき、メイン サイトにリダイレクトする前に、「MobilOptOut」Cookie を作成し、screen.width if ステートメントでその Cookie の存在をテストします。

于 2012-07-05T02:29:33.720 に答える
0

クライアントは、ユーザーが見たい現在のビューの状態を管理する必要があります。HTTP はステートレス プロトコルであるため、Cookie を使用して、HTTP 要求全体でユーザーの選択を保持できます。

ユーザーがボタンをクリックしてメイン バージョンを表示すると、クリック イベントの一部として Cookie が削除されます。同様に、ユーザーがモバイル バージョンを表示したい場合は、Cookie を目的の値に設定します。ライブラリに依存する可能性がある JavaScript を使用して Cookie を操作する方法は多数あるため、ページで行うべき動作の擬似コードを以下に示します。

// Pseudocode:
// Sets a cookie named "view" with the value "mobile"
function setMobileView() {
    Cookie.set("view", "mobile");
}
mobileViewButton.onclick = setMobileView;

// Deletes the cookie named "view"
function setMainView() {
    Cookie.delete("view");
}
mainViewButton.onclick = setMainView;

リダイレクト ロジックがどのようになるかの擬似コードを次に示します。

// Pseudocode for deciding the view to display
if (view === "mobile") {
  location.href = "http://m.domain.com";
}
于 2012-07-05T02:53:57.120 に答える