- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑3:这个jsFiddle与插件一起使用,我几乎拥有它。
编辑2:我做了一个fiddle .我无法让插件在那里工作,但也许它更容易分析。
<小时/>在我正在构建的网页中,文章(帖子)和新页面是通过 Ajax 加载的。同时,当加载新的 Ajax 内容时,地址栏会发生变化(使用 jQuery Address plugin )。
所以正常的导航会像这样:
/ /page2 /page3 /article7 /page3 /page4
请注意,在此导航中,没有按下浏览器按钮,当退出article7时,网站将返回到其先前的网址,在本例中为page3。
该插件无法检测用户何时按下后退或前进按钮。我设法找到一种方法来知道用户何时按下后退或前进按钮:
每次添加新内容并更改地址时,我都会将新地址存储在数组中。如果用户按下后退或前进按钮,我会这样分析:
if (new_url == penultimate_value_in_array) => Back button pressed (errase last value from array)
else => Forward button pressed (add new value to array)
这对于这种导航来说是正确的:
/ /page2 /page3 /page4
就我而言,它非常适合“后退”按钮。但是,如果用户按“前进”从/article7 到/page3,该函数会将其读取为“后退”。这是一个例子来理解我的意思:
<小时/>用户位于/page4 并按 Back -> new_page=/page3 ,等于 penultimate_page_in_array(/page3) => BACK
/ /page2 /page3 /article7 /page3 /page4
用户位于/page3 并按 Back -> new_page=/article7 ,等于 penultimate_page_in_array(/article7) => BACK
/ /page2 /page3 /article7 /page3
用户位于/article7 中并按 Back -> new_page=/page3 ,等于 penultimate_page_in_array(/page3) => BACK
/ /page2 /page3 /article7
用户位于/page3 并按 Back -> new_page=/page2 ,等于 penultimate_page_in_array(/page2) => BACK
/ /page2 /page3
用户位于/page2 并按 Forward -> new_page=/page3 ,不等于 penultimate_page_in_array(/) => FORWARD
/ /page2
用户位于/page3 中并按“前进”-> new_page=/article7,该值不等于 penultimate_page_in_array(/page2) => FORWARD
/ /page2 /page3
用户位于/article7 中并按 Forward -> new_page=/page3 ,等于 penultimate_page_in_array(/page3) => BACK (此处的值应为 FORWARD)
/ /page2 /page3 /article7
我如何引入另一个语句来确定 False Back 应为 Forward?
<小时/><小时/>编辑:
这是我正在使用的代码,我不确定它是否有助于解决问题,但它是:
var site_url = 'www.mysite.com',
last_visited_url = '',
just_visited_url = $.address.baseURL().replace(site_url,''),
visited_pages_array = [just_visited_url],
page_number = '';
访问新页面时:ajax调用,然后:
last_visited_url = just_visited_url;
page_number = $('a.next_page_link').attr('href').replace(site_url,''); // /page3 for example
$.address.state(site_url).value(page_number);
just_visited_url = page_number;
visited_pages_array.push(just_visited_url);
加载文章时:ajax调用,然后:
article_url = $('a.article_title').attr('href').replace(site_url,''); // /article7 for example
last_visited_url = just_visited_url;
$.address.state(site_url).value(article_url);
just_visited_url = article_url;
visited_pages_array.push(just_visited_url);
当存在文章时:
last_visited_url = just_visited_url;
$.address.state(site_url).value(page_number); // This page number is the last page_number value
just_visited_url = page_number;
visited_pages_array.push(just_visited_url);
当用户按下某些浏览器按钮时,将执行此代码:
$.address.externalChange(function() {
var newPage = $.address.baseURL().replace(site_url,'');
if (visited_pages_array[visited_pages_array.length-2] == newPage) {
visited_pages_array.splice(visited_pages_array.length-1 , 1);
console.log('BACK pressed');
} else if (visited_pages_array.length > 1) {
visited_pages_array.push(newPage);
console.log('FORWARD pressed');
} else {
console.log('REFRESH pressed');
}
});
最佳答案
我能想到的最快、最简单的解决方案如下:
您的问题是,当您的“下一页”和“上一页”页面相同时,按 Forward
会被您的代码检测为 Back
,因为以下条件是 true
:
visited_pages_array[visited_pages_array.length-2] == newPage
针对您的情况,我会推荐两件事:
请勿删除您刚刚从 visited_pages_array
中留下的地址,如下所示:
visited_pages_array.splice(visited_pages_array.length-1, 1);
这样visited_pages_array
将保留所有访问过的页面的列表。
创建一个名为 current_page_index
的新“全局”变量,该变量将在 visited_pages_array
中保存当前页面的索引,该变量现在可以保存 visited_pages_array.length -1
(如果您当前位于最后访问的页面)或更低的值(如果您使用后退
按钮)。
现在您所要做的就是改变您的状况:
if (visited_pages_array[visited_pages_array.length-2] == newPage)
至:
if (visited_pages_array[current_page_index-1] == newPage)
注释:
后退
点击时,执行以下操作:current_page_index--;
,当您检测到前进
时,执行以下操作:current_page_index++ ;
visited_pages_array.splice(current_page_index+1 ,visited_pages_array.length-current_page_index-1);
(删除所有保存的 Forward
),然后将新地址推送到 visited_pages_array
的末尾。当然还有设置 current_page_index++;
我希望这足够清楚,我无法让你的 jsFiddle 工作,所以我可以清楚地解释。 GL:)
编辑:取自 jQuery Address
文档的另一个想法:(不过不确定这个)
$.address.externalChange(fn): Binds a function to be executed when the address is changed from the browser usually when entering the page or using the back and forward buttons. The function receives a single event object parameter that contains the following properties: value, path, pathNames, parameterNames, parameters and queryString.
这意味着您的函数可以接收事件对象 - 尝试alert()
它的所有属性,也许答案就在那里
$.address.externalChange(function(ev){
// loop and alert ev's properties
for (var p in ev) {
alert(p + ': ' + ev[p]);
}
})
关于jQuery 地址 : Certify that user is pressing forward button and not back button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16808014/
目前,我有以下设置: A记录: mydomain.com - aaa.aaa.aaa.aaa subdomain.mydomain.com - aaa.aaa.aaa.aaa NS记录: mydoma
有人可以帮助我以最佳方式在流畅的 nHibernate 中映射以下情况吗? Address 类用于 Client 和 Company。如何在 SQL 中最有效地存储它?映射应该是什么样的?我已经考虑过
我正在尝试编写一个 Windows 应用程序,它将在来自 PC 的以太网链接上生成流量。 我想使用 webBrowser 控件不断拉取网页以产生流量。 在这种情况下,我希望每个 webBrowser
我正在编写一个 SIP 堆栈,我需要在消息中插入一个 IP 地址。该地址必须是用于发送消息的地址。我知道目标 IP 并且需要确定将用于发送消息的 NIC(其地址).... 最佳答案 为了扩展 Remy
如何使用 IP 地址获取 MAC 地址,但以下代码不起作用 packet = ARP(op=ARP.who_has,psrc="some ip",pdst = ip) response = srp(p
目前我想知道如何实现对本地无线网络(路由器)的获取请求以获取当前连接到当前连接的 LAN 的所有设备.... 所以我做了一些研究,显然“nmap”是一个终端/命令提示符命令,它将连接的设备返回到本地无
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicates: how to find MAC address in MAC OS X programmatically
我们正在为 ipad 开发一个 iOS 应用程序,它使用 bonjour 与其他设备连接,使用 couchbaseListener 与对等数据库进行复制。我们观察到,每当 [nsnetservice
我创建了 3 个实例,其中 3 个弹性 IP 地址指向这些实例。 我做了 dsc 的 yum 安装:dsc12.noarch 1.2.13-1 @datastax 并且/etc/cassandra/d
我正在尝试获取规模集中所有虚拟机的私有(private) IP 地址列表(没有一个虚拟机故意拥有任何公共(public) IP 地址)。我找到了如何从 az cli 获取此内容,如下所示: az vm
我正在尝试获取规模集中所有虚拟机的私有(private) IP 地址列表(没有一个虚拟机故意拥有任何公共(public) IP 地址)。我找到了如何从 az cli 获取此内容,如下所示: az vm
我正在尝试与该端口上的任何 IP 建立连接。最初,我将其设置为 10.0.0.7,这是我网络上另一台计算机的 IP,因此我可以测试客户端/服务器。但是,我希望它可以与任何计算机一起使用而不必将 IP
作为序言,我开发了自己的 CRM(类似于 SalesForce 或 SAP),其“规模”要小得多,因为它面向服务,而不是销售。我在 Ubuntu 16.04 服务器上使用 MySql 或 MariaD
在我的项目中,我想做如下事情: static void test0(void) { printf("%s [%d]\n", __func__, __LINE__); } static void
我的机器上有两个网卡,配置了两个独立的 IP 地址。两个 IP 地址都属于同一个网络。我是否正确地说,当我创建一个特定于这些 IP 地址之一的套接字时? 更新: 这是我的情况: 我有一个位于 192.
当然,我意识到没有一种“正确的方法”来设计 SQL 数据库,但我想就我的特定场景中的优劣获得一些意见。 目前,我正在设计一个订单输入模块(带有 SQL Server 2008 的 Windows .N
我们将保存大量地址数据(在我公司的眼中,每个客户大约有150.000至500.000行)。 地址数据包含约5列: 名称1 名称2 街(+否) 邮政编码 市 也许以后再添加一些东西(例如电话,邮件等)
好的,我们在生产中实现了 Recaptcha。我们收到错误是因为它无法到达使用该服务所需的 IP 地址。我们为 IP 地址打开一个端口以到达 Google。没问题。我们这样做并显式配置该 IP 地址以
此页面使用 Drupals 联系表发送电子邮件:http://www.westlake.school.nz/contact 问题是,学校员工使用 outlook。当他们收到来自 parent 等的电子
是否可以将用户输入的邮政编码转换为文本框并将其转换为CLLocation?我正在尝试比较其当前位置与地址或邮政编码之间的距离,如果可以从NSString中创建CLLocation,这将很容易。 最佳答
我是一名优秀的程序员,十分优秀!