确定jQTouch中的上一页(即引用者)

时间:2010-08-17 04:55:25

标签: jquery history jqtouch referrer

我正在尝试确定上一页(例如推荐人)以决定是否显示后退按钮。

我尝试检查$('.current').data('referrer'),但并不总是设置。事实上,它往往没有设定。似乎也没有设置history.previousdocument.referrer

有人可以赐教我吗?

3 个答案:

答案 0 :(得分:1)

我不想走这条路,但我能找到的唯一可行解决方案是jQTouch保持浏览历史记录的内部变量(即hist)。所以,我对jqouth.js(修订版146)进行了以下更改:

在第256行附近,就在私有函数部分之前,插入:

function getHistory() { return hist; }

在第625行附近,就在submitForm: submitForm之前,插入:

getHistory: getHistory,

然后我可以用以下内容查看浏览历史记录:

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

需要注意的是,应注意不要意外地操纵历史对象。

修改

作者自the version on 14 October 2010以来公开了内部历史记录对象,因此可以直接访问它,即jQT.hist

答案 1 :(得分:1)

我一直在使用引用来解决相同的问题,但我没有得到。 我提出了以下解决方案,不会强迫我修改jqtouch.js

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

$('body> div')选择器应该选择所有div作为正文的直接子节点,在jqtouch中是所有页面定义。 我在currentTargetId中的pageAnimationStart返回的事件中找到了原始页面的名称。

如果有人告诉我是否可以对选择器进行更严格的限制以及是否还有获取当前页面的方法,我将不胜感激。

答案 2 :(得分:0)

嗯......我无法评论,所以这是关于William修改jqtouch.js的答案。

我想我会更容易简单地说:

hist: hist,

哪里

getHistory: getHistory,

将被放置。

然后没有必要添加该功能。请记住,您正在访问历史本身而不是函数,因此不需要圆括号。

然后,这实际上只适用于旧版本的jqtouch。