Определить предыдущую страницу (т.е. реферер) в jQTouch - PullRequest
1 голос
/ 17 августа 2010

Я пытаюсь определить предыдущую страницу (например, реферер), чтобы решить, следует ли отображать кнопку возврата.

Я пытался проверить $('.current').data('referrer'), но это не всегда установлено. На самом деле, это часто не устанавливается. history.previous и document.referrer также не установлены.

Может ли кто-нибудь, пожалуйста, просветить меня об этом?

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

Я боролся с той же проблемой, используя реферер, но я этого не понял. Я пришел к следующему решению, которое не заставляет меня изменять jqtouch.js

$('body>div').bind('pageAnimationStart', function(e, data) {
  if(data.direction === 'out') {
    alert('referrer is : ' + e.currentTarget.id);
  }
});

Селектор $ ('body> div') должен выбрать все div, которые являются прямыми потомками тела, которые в jqtouch являются определениями всех страниц. Я нашел имя исходной страницы в событии, возвращенном pageAnimationStart, в currentTargetId.

Буду признателен, если кто-нибудь скажет мне, могу ли я быть еще более ограниченным с селектором и есть ли способ получить текущую страницу.

1 голос
/ 19 августа 2010

Я не хотел идти по этому пути, но единственное жизнеспособное решение, которое я могу найти, - это внутренняя переменная (например, hist), которую jQTouch хранит историю просмотров.Итак, я внес следующие изменения в jqouth.js (ревизия 146):

около строки 256, непосредственно перед разделом частных функций, вставьте:

function getHistory() { return hist; }

около строки 625, непосредственно передsubmitForm: submitForm, вставьте:

getHistory: getHistory,

Тогда я могу посмотреть на историю просмотра примерно так:

var previousPageID = jQT.getHistory()[1].id;

Одно предостережение: нужно быть осторожным, чтобы случайно не манипулировать историей.object.

EDIT :

Автор предоставил объект внутренней истории начиная с версии 14 октября 2010 года , поэтому к нему можно получить прямой доступт.е. jQT.hist.

0 голосов
/ 25 ноября 2010

Хм ... Я не могу комментировать, так что это касается ответа Уильяма на изменение jqtouch.js.

Я думаю, мне будет проще сказать:

hist: hist,

Где

getHistory: getHistory,

должен быть размещен.

И тогда нет необходимости добавлять функцию. Просто помните, что вы обращаетесь к самой истории, а не к функции, поэтому вам не нужны круглые скобки.

Опять же, это действительно относится только к более старым версиям jqtouch.

...