jQuery Mobile を使用してモバイル サイトを構築していますが、テスターの 1 人が、jQuery に組み込まれている標準のページ読み込み機能を使用して DOM に読み込んだページを再読み込み、ディープ リンク、またはブックマークする際の問題を指摘しました。モバイル。私はドキュメント、フォーラムの投稿、github のバグ リストなどを調べて解決策を探していましたが、何が間違っているのかについて頭を悩ませています。私が見ているものを示す非常に基本的な 2 ページの例をコンパイルしました。
まず、サンプル サイトのルート フォルダー (つまり/index.html
) に次のようなindex.html ページがあります。
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js"></script>
</head>
<body>
<!-- main page -->
<div data-role="page" data-theme="b" id="main">
<div data-role="header" data-theme="b">
<h1>Home Page</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li><a href="news/">News</a></li>
</ul>
</div><!-- /content -->
</div><!-- /main page -->
</body>
</html>
「news」という名前のフォルダー (つまり/news/index.html
) に、次のような2 番目のページがあります。
<div data-role="page" data-theme="b" data-add-back-btn="true" id="news">
<div data-role="header" data-theme="b">
<h1>News</h1>
</div><!-- /header -->
<div data-role="content">
TODO: page content goes here
</div><!-- /content -->
</div><!-- /#news page -->
だから、これはうまくいきます。「ホームページ」は正常に読み込まれます。ブラウザのアドレス フィールドに が表示されますhttp://m.example.com/
。
「ニュース」リンクをクリックして、そのページを DOM にロードできます。ブラウザのアドレス フィールドに が表示されるようになりhttp://m.example.com/news/
ました。ここに私の問題があります。ブラウザーのリロード ボタンをクリックすると、/news/index.html
ページがリロードされますが、メインのホームページ コンテキストが完全に欠落しているため、jQuery、css、または適切な HTML ドキュメント構造がありません。URL とそのドキュメントの内容を考えると、そうなると思います。しかし、モバイル サイトの外部からディープ リンクされている場合に機能するサブページへのリンクが必要です。
を使用してサブページにリンクするとhttp://m.example.com/#news/
、これが機能し、サブページが正しく読み込まれ、ブラウザのアドレス フィールドが自動的に に書き換えられhttp://m.example.com/news/
ます。これの問題点は、ページの URL をブックマーク、ツイート、電子メールなどで編集するたびに、URL を手動で編集する必要があることを人々が知る必要があることです。
DOM が正しく再作成されるように、ブラウザーを自動的にホーム ページに戻し、ユーザーに透過的にサブページの読み込みをトリガーする方法はありますか? 私は何が欠けていますか?