jQuery Mobile преобразовывает URL-адрес (#) в% 23 в браузере Android - PullRequest
1 голос
/ 21 марта 2012

Я использую многостраничный шаблон jQuery Mobile для своего сайта, но когда я захожу на сайт из браузера Android, он не работает.

Проблема в том, что браузер преобразовывает тег # в %23.

Например, я могу посетить эту ссылку www.domain.com/abc.php?id=1234#show_map в iPhone, но Android показывает эту ссылку следующим образом: www.domain.com/abc.php?id=1234%23show_map

Как я могу решить эту проблему?Должен ли я создать новую страницу вместо хэш-тега page или как добавить исключение для браузеров Android?

Спасибо

ОБНОВЛЕНИЕ: Вот код, который не работаетна Android, но работает везде:

    <script type="text/JavaScript">
        window.done_mapping=false;
        contingency = function() {
            if(window.done_mapping) return true;
            window.location.href='#roast_map';
            window.location.reload();
        }
        contingency_email = function() {
            if(document.getElementById("email")) return true;
            window.location.href+='#email';
            window.location.reload();
        }
    </script>

    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="a">
            <li class="goMap"><a href="#roast_map" data-transition="slide" onclick="contingency();">View on map</a></li>
            <li class="goMap"><a href="#email" data-transition="slide" onclick="contingency_email()">E-mail Results</a></li>
        </ul>
    </div>

1 Ответ

1 голос
/ 18 мая 2012

Существует метод кодирования / декодирования jquery, который вы должны использовать для кодирования URL-адреса, содержащего специальные символы. например:

var url = 'www.domain.com/abc.php?id=1234#show_map'; var encodedUrl = encodeURIComponent (url);

...