0

画面幅に基づいてリダイレクトを作成しました。

ページは https://galleryofjewels.businesscatalyst.com/home

携帯電話がここで「ホーム」に最初に遭遇したときに、リダイレクトが一度だけ発生するようにしたいと思います: https://galleryofjewels.businesscatalyst.com/home

次の JavaScript を使用して、「ホーム」ページを 480 以下の画面幅用に設計された「about-us-mobile」というページにリダイレクトしています。

if (screen.width <= 480) {
    document.location = "about-us-mobile ";
}

480以下に最適化された2つのページと、galleryofjewels.businesscatalystに戻るこれら2つのページのリンク「ショップ」のみがあります

携帯電話で「ショップ」ボタンをクリックして、「about-us-mobile」に再度リダイレクトされることなく、完全な「ホームページ」ページが表示されるようにします。

そこで、「home」ページのコピーであるページを作成し、「home_full_site_shop」と名付けました。リダイレクトはありません。モバイルページの「ショップ」ボタンはこのページにリンクしています。

携帯電話が最終的にgalleryofjewels.businesscatalystの任意のページの「ショップ」ボタンを介して再びホームページにリンクしようとした場合、「about-us-mobile」に再度リダイレクトしないでください。

要するに、携帯電話が galleryofjewels.businesscatalyst ホームページに最初に遭遇したときに、リダイレクトが 1 回だけ発生するようにしたいと考えています。

4

3 に答える 3

1

JavaScriptだけに縛られている場合、最善の策はおそらく、サイトがサイズを認識した時点で設定される GET 変数を使用することです。設定されているこの変数は、関連するリンクがモバイル最適化されたページに移動する必要があることを各ページに示します (この GET 変数の存在 [または存在しない] に基づいてリンクを動的に作成できます)。この方法で、実際には両方のリダイレクトを回避できます。サイト内でクリックするたびに GET 変数を渡すだけです (これは、オンロードのすべてのページ リンクを動的に変更することで実行できます)。

サーバー側のオプション (PHP など) もある場合は、より適切なオプションがあります。セッション/Cookie を使用して、現在のユーザーがモバイルかどうかを保存し、セッションが設定された後に Web ブラウザーに適切なリンクを送信できます。

于 2012-07-26T02:47:54.347 に答える
0
if (window.innerWidth <= 480) {
    window.location = "https://galleryofjewels.businesscatalyst.com/home";
}
于 2012-07-26T02:53:30.333 に答える
0

簡単に、(法律用語で言えば技術的な) Cookie (固有の情報を含まない) を設定します。

cookie オプションはかなりクロス ブラウザーでサポートされており、十分に文書化されています (ユーザーがそれらをオフにした場合を除きます。これは、現在、共謀などの認識ツールのために非常に大流行しています)。その場合、フォールバック メカニズムまたはグレースフル デグラデーションがない場合、ユーザーにとって「問題」があります。
JavaScript にも依存している場合、サイトには Cookie と JavaScript の 2 つの要件があります。
したがって、javascript/cookie ルートは簡単に実装できますが、長い目で見れば、もう少し調べても害はありません。

または、現在の癖をすべて備えたローカル Web ストレージに飛び込むこともできます

また、IP などに基づくデータベースを使用して、サーバーにログを記録することもできます。

さらに別のオプションは、(とにかくhtmlサーバーサイドをレンダリングする場合)ドキュメントとスクリプト内のすべてのリンクを(GET変数を使用して)書き換え/変更することです...
または.htaccess mod-rewrite ..?

私は順調に進んでいます...
2 つのサブドメインを使用することもできます: フロントドアでユーザーをキャッチし、解像度/アプリ固有のサブドメインにリダイレクトし、javascript-function history.replace( を使用してこれを行います。 ); このように、ユーザーは履歴を「フロントドア」に戻ることができないため、最終的にサブドメインのルートに閉じ込められます。

多田 :P

したがって、この要件に対する適切な長期的な解決策は、選択を行うことから始まります..

于 2012-07-26T02:44:30.470 に答える