- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在我的项目中实现像浏览器一样的后退和前进功能,比如我们有屏幕的网页。我试过的是最初 m 设置 currentscreenindex=-1
当第一个屏幕的数据到来时执行这个函数
In screen data arrive function (){
this.currentscreenindex++;
this.screenvisited[this.currentscreenindex]=data;
}
这是我尝试过的后退功能:
back(){
currentscreenindex--;
var screen=screenvisited[currentscreenindex];
// will go to this screen
}
但我的问题在于:
currentscreenindex screen data in screenvisted array
When 1st screen arrived 0 Data of 1st screen
When 2st screen arrived 1 Data of 2st screen
When 3st screen arrived 2 Data of 3st screen
When 4st screen arrived 3 Data of 4st screen
When 5st screen arrived 4 Data of 5st screen
when user click back button 3 call the screen is set to 4th gib,
所以当第 4 个屏幕的数据到达时,当前索引将增加,所以 currentindex=4
并且当前索引 4 处的数据将是第 4 个屏幕,我认为这是不正确的,因为如果数据在 currentindex=4
将被更改然后我不能做转发,如果是请告诉我如何更正它?
请建议我如何编写正确的后退和前进功能来实现与浏览器相同的功能。
最佳答案
我不知道你如何将它融入你目前的工作方式,但你可以实现这样的功能:
你有两个堆栈。返回堆栈和下一个堆栈。他们都开始是空的。当用户通过链接或除后退/前进之外的其他导航方法导航到新页面时,清除下一个堆栈,将当前页面添加到后退堆栈,然后继续导航。当用户单击后退时,将当前页面压入前向堆栈,从后退堆栈弹出一个页面,然后导航到弹出的页面。当用户点击前进时,将当前页面压入后退栈,从前进栈中弹出一个页面,并导航到弹出的页面。
编辑:你要求一些伪代码,所以你去:
var currentPage=null;
var backStack=[];
var forwardStack=[];
function navigate(newPage) {
currentPage=newPage;
// stub
}
function linkClicked(page) {
backStack.push(currentPage);
forwardStack=[];
navigate(page);
}
function goBack() {
forwardStack.push(currentPage);
navigate(backStack.pop());
}
function goForward() {
backStack.push(currentPage);
navigate(forwardStack.pop());
}
关于javascript - 如何实现像浏览器一样的后退和前进功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6869476/
我正在构建一个带有 10 个按钮和一个容器的小型 CoffeeScript 应用程序(简单)。当用户按下其中一个按钮时:容器发生变化。 这些按钮看起来像导航栏,我没有使用链接(这将重新加载整个页面),
我正在使用 ajax 来模拟菜单。一切正常,但后退 和前进 按钮无法正常工作。 所以代码是: $('#sdt_menu a').on('click', function (e) { hre
我正在开发单页应用程序 (SPA)。因此,为了维护浏览器的前后功能,我使用 htmlPushState 和 window.onpop 传递参数来更改 css 并从后端调用 rest APIS。 所以目
我正在尝试找到一种方法,以避免当用户使用 2 指滚动(例如:OSX)时在浏览器中触发后退/前进。 就像这样: https://tweetdeck.twitter.com 最佳答案 移动设备在处理触摸事
如何让 SKNode 继续前进? 我已经能够使用 [SKAction moveByX:y:duration:] 使节点沿固定方向移动,但我希望它沿相对于其面向方向的方向移动. 我希望让每个节点旋转 4
如何使用 JQuery 或 Native JS 禁用现代浏览器在水平滚动时向后或向前移动的默认功能? 这通常发生在使用触控板和滚动到可滚动 div 的结尾或开头时。 最佳答案 history.push
我有一个对象列表,我想在 Spring Rest API 中返回这些对象,然后将其作为 Angular 中的对象数组读取: public Stream findListByReference_tran
谁能建议我如何在 emacs 中通过 n 逗号前进(或后退)? 我正在尝试浏览 CSV 文件 我知道我可以做类似的事情: C-u 100 M-f 但是能够在逗号上做更多的正则表达式会更准确 最佳答案
我无法使用 MediaController 来暂停/前进/后退 视频,而且它只发生在 LG 设备上。下面是正在使用的代码,它在所有设备的其余部分都有效: VideoView video=(Vi
如何从转换矩阵中获取前向、右向和向上 vector ? 我想以这些 vector 为基础,向不同方向的刚体施加力。 btTransform Trans = _RigidBody->getWorldTr
有没有办法在向另一个 Controller 添加一些参数数据的同时将请求转发给另一个 Controller ?我尝试添加到 ModelMap,但它似乎并没有出现。我正在做类似的事情: return "
在CentOS 中,双击文件夹,默认会在新窗口中打开文件夹,没有路径、前进、后退这样的按钮,如果一个文件夹的路径很深,则需要打开n多的窗口才能找到最终想要的。我们可以设置一下,呵呵…… 步骤如下:
后退箭头在 Xcode 中损坏? 是否有键盘命令可以一次后退/前进一个文件。 Xcode 3.2更改了 Cmd-Opt 的行为。正如另一个问题中所指出的,它们不像以前版本的 Xcode 那样在文件级
从文档 ( http://www.asual.com/jquery/address/docs/ ) 中可以看出,该插件有一个事件来检测何时按下浏览器的后退/前进按钮。 $.address.extern
我目前正在开发一个跟踪访问者鼠标行为的 jQuery 插件。移动、点击、滚动和调整大小都会被记录下来,并通过 Ajax 发送到解析和存储这些数据的位置。 最初,当用户离开页面时,数据被发送到脚本。我所
开始细节: Windows 7 专业版 64 位 WAMP 版本:2.5 MySQL版本:5.6.17 PHP 版本:5.5.12 Apache 版本:2.4.9 我还有 Git、Heroku Too
我正在学习JavaFX,试图编写一个简单的浏览器,但是如何使用WebView和WebEngine在JavaFX中编写“后退”和“前进”按钮?任何示例代码? 最佳答案 如果您不需要获取或设置任何索引,这
我想使用我拥有的两个附加(“虚拟”)鼠标按钮(RAZER DEATHADDER BLACK)在编辑器选项卡之间向后/向前移动。 在 Eclipse 中,默认情况下它是可能的。 在 IDEA 中,我转到
有没有办法只让我的 OWN 浏览器 (Chrome) 无法后退/前进/刷新? 这种情况经常发生,当我在 devtools 中开发和玩弄时(更改 HTML 和 CSS 只是为了尝试一下)我有时会不小心向
所以我正在尝试编写一个脚本来动态加载内容,这样页面就不必刷新(主要内容将被替换,但侧边栏、页眉、页脚等将保留在同一个地方)。我已经触发了我的事件,我正在使用 pushState() 来更新我的 URL
我是一名优秀的程序员,十分优秀!