我试图确定前一页(例如引荐来源网址)以决定是否显示后退按钮。
我试图检查$('.current').data('referrer')
,但它并不总是设置。事实上,它通常是不设置的。history.previous
并且document.referrer
似乎也没有设置。
有人可以请教我吗?
我不想走这条路,但我能找到的唯一可行的解决方案是hist
jQTouch 保留浏览历史记录的内部变量(即 )。因此,我对 jqouth.js(修订版 146)进行了以下更改:
在第 256 行附近,就在私有函数部分之前,插入:
function getHistory() { return hist; }
在第 625 行附近,就在 之前submitForm: submitForm
,插入:
getHistory: getHistory,
然后我可以查看浏览历史记录,例如:
var previousPageID = jQT.getHistory()[1].id;
一个警告是,应注意不要意外操纵历史对象。
编辑:
作者从2010年10月14日的版本就暴露了内部的历史对象,所以可以直接访问,即jQT.hist
。
我一直在使用引荐来源网址解决同样的问题,但我没有得到。我想出了以下不强迫我修改 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返回的事件中找到了源页面的名称。
如果有人能告诉我是否可以对选择器进行更多限制,以及是否还有一种获取当前页面的方法,我将不胜感激。
嗯......我无法发表评论,所以这是关于威廉修改 jqtouch.js 的答案。
我想我会更容易简单地说:
hist: hist,
在哪里
getHistory: getHistory,
是要放置的。
然后就不需要添加这个功能了。请记住,您访问的是历史记录本身而不是函数,因此不需要圆括号。
话又说回来,这真的只适用于旧版本的 jqtouch。