1

我试图确定前一页(例如引荐来源网址)以决定是否显示后退按钮。

我试图检查$('.current').data('referrer'),但它并不总是设置。事实上,它通常是不设置的。history.previous并且document.referrer似乎也没有设置。

有人可以请教我吗?

4

3 回答 3

1

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

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

function getHistory() { return hist; }

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

getHistory: getHistory,

然后我可以查看浏览历史记录,例如:

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

一个警告是,应注意不要意外操纵历史对象。

编辑

作者从2010年10月14日的版本就暴露了内部的历史对象,所以可以直接访问,即jQT.hist

于 2010-08-19T03:54:14.773 回答
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返回的事件中找到了源页面的名称。

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

于 2010-11-09T03:25:59.380 回答
0

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

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

hist: hist,

在哪里

getHistory: getHistory,

是要放置的。

然后就不需要添加这个功能了。请记住,您访问的是历史记录本身而不是函数,因此不需要圆括号。

话又说回来,这真的只适用于旧版本的 jqtouch。

于 2010-11-25T18:08:48.767 回答