2011-02-10 1 views
3

Во-первых, некоторые фон:Почему javascript: history.go (-1); не работает на мобильных устройствах?

У меня есть приложение, которое представляет собой страницу поиска (html-форму) для пользователя. После того, как критерии будут заполнены и нажата кнопка «Поиск», результаты появятся ниже раздела критериев. В списке результатов вы можете просмотреть детали отдельного результата, щелкнув ссылку, которая приведет вас к новой странице. В странице подробно, я включил Назад к результатам ссылку, как так:

<a href="#" onclick="history.go(-1);return false">Back to Results</a> 

Это прекрасно работает в IE8/9, Safari, Firefox и Chrome на рабочем столе. Однако он не работает на моем телефоне Android, моем эмуляторе Android или iPhone 3G. Я должен отметить, что когда я использую ссылку на рабочем столе, я сразу возвращаюсь к тому, что, похоже, является кешированной копией моей страницы поиска с результатами, и я помещен в ту же позицию прокрутки в результатах. На мобильных устройствах кажется, что страница перезагружается с сервера, мои критерии поиска исчезают, и результатов нет.

Если у кого-то есть идеи, с чего начать искать решение, я был бы очень признателен! Я также могу предоставить более подробную информацию по мере необходимости.

Спасибо и привет, CN

+0

Check для кэширования заголовков на мобильных установках? Многие (большинство? Все?) Мобильных провайдеров имеют прозрачные прокси-серверы, которые могут принудительно использовать заголовки каких-то кешей, заставляя удаленные устройства перезагружать страницы и нести более высокие затраты на передачу данных ($$$ kaching $$$) –

ответ

0

Какой метод вы используете для передачи фильтров на странице поиска? ПОСТ или ПОЛУЧИТЬ?

Если вы используете POST, вам придется повторно отправить свои фильтры, когда они вернутся, иначе на вашей странице не будет фильтров.

Попробуйте переключиться на GET и посмотрите, работает ли это.

Я думаю, что важным отличием является то, что он работает (т. Е. Отправляет вам страницу), но ваше мобильное устройство не переставляет ваши поля формы?

+0

Я использую POST - это моя попытка приложения RESTful, построенного на MS MVC3, поэтому GET/Search отображает страницу поиска, и POST/Search фактически выполняет поиск. Я думаю, что это связано с значениями параметров, и, возможно, на мобильных устройствах это не работает должным образом из-за предложения Marc B о том, что провайдеры мобильной связи вводят кеширование в заголовки. Но тогда ... он также не работает на эмуляторе на моем рабочем столе. Главное, что я хотел бы понять, это то, почему поведение отличается ... – CircusNinja

+0

Ах понял, проигнорировал мой ответ тогда :) – JamesHalsall

1

для Android, Вам необходимо включить JavaScript в WebView:

webView.getSettings().setJavaScriptEnabled(true); 
2

Использование:

<a href="javascript:history.go(-1)">Back to Results</a> 

т.е. не в "onclick", но в "href" - это работа

+0

Вероятно, в href должен быть префикс 'javascript:'. –

+0

Спасибо, это сработало для меня. –

 Смежные вопросы

  • Нет связанных вопросов^_^