Возможно ли, чтобы jQuery Mobile отображал хэш на первой загруженной странице? - PullRequest
0 голосов
/ 23 марта 2012

Если у меня есть файл index.html, и он содержит несколько страниц. Когда я загружаю страницу, я хочу, чтобы URL содержал хэш #first, он же index.html#first. Вместо этого URL говорит: index.html.

Моя работа до сих пор заключается в том, чтобы создать поддельную первую страницу, а затем ссылку на index.html#first, надеюсь, никогда не показывать «настоящую» первую страницу, также известную как index.html#fake.

Есть ли лучший способ сделать это?

<body>

    <!--
        fake page
    -->
    <div data-role="page" id="fake">
        <div data-role="content">
            fake
        </div>
    </div>

    <!--
        first
    -->
    <div data-role="page" id="first">
        <div data-role="content">
            first
        </div>
    </div>

    <!--
        second
    -->
    <div data-role="page" id="second">
        <div data-role="content">
            second
        </div>
    </div>
</body>

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Почему бы вам не проверить в JS, присутствует ли на странице index.html хэш-код, а если нет, вы можете перенаправить браузер на index.html#first

$(function () {
    if (window.location.hash.length == 0) {
        window.location = window.location.href + '#first';    
    }
});
0 голосов
/ 23 марта 2012

Сконфигурируйте ваш веб-сервер так, чтобы запросы на "index.html" и на '/' (путь без файла!) Возвращали ответ 301 Moved Permanently для перенаправления на 'index.html # first'

Тем не менее, я не могу представить, почему вы хотите навязать хэш URL-адресу;может быть библиотека, которая недостаточно надежна?Правильно закодированные http://example.com/, http://example.com/index.html и http://example.com/index.html#first могут и должны (ИМХО) вести себя одинаково.

...