标签: back-button

防止使用后退按钮(在IE中)

因此,我目前就业地点的中小企业想要尝试禁用某些页面的后退按钮.我们有一个页面,用户进行一些选择并提交它们进行处理.在某些情况下,他们必须在另一页上输入评论.

用户已经想到的是,如果他们提交信息并转到带有评论的页面,则不必输入评论,然后点击后退按钮返回上一页.

我知道有几种不同的解决方案(其中许多解决方案比禁用后退按钮更优雅),但这就是我留下的.是否可以通过改变后退按钮的行为来阻止某人返回上一页.(比如提交 - >返回错误的排序).

由于双重发布信息,我不能让它返回上一页然后转移到当前页面.我只能直接离开当前页面.我用谷歌搜索它,但我只看到帖子说它将永远返回上一页.我希望有人有一些疯狂的功夫技能可以使这成为可能.

我知道每个人都说这是一个坏主意,我同意,但有时候你只需要做你所说的.

javascript internet-explorer back-button

12
推荐指数
3
解决办法
3万
查看次数

浏览器返回+ viewscope bean

问题是:点击浏览器后退按钮会发生什么 - >打开一个已经销毁了viewscoped-managedbean的页面 - >从该页面的commandButton提交一个带有网格记录选择的请求?

我的期望:重新创建关联的viewscope-managebean,接收网格记录选择,并处理它们,就像从不涉及浏览器后退按钮一样.

我的经验:相关的viewscope-managebean不会重新创建,也不会接收网格记录选择.必须重新输入URL,或者在点击浏览器后退按钮后重新输入F5才能再次正常工作.

所以这是成功的场景,所有的bean都是视图编组的bean:

  1. 在@PostConstruct中创建了page1.xhtml - > page1Bean,查询数据等
  2. 检查/选择数据表中的多条记录,单击"处理"按钮
  3. page1Bean的进程方法将选定的记录存储在flash对象中,并重定向到page2.xhtml
  4. page1Bean被破坏,page2Bean被创建,并且在preRenderView监听器方法中,从flash对象中获取所选记录,并处理它们
  5. 单击"转到主页面"commandButton重定向到page1.xhtml,并且page2Bean被销毁,page1Bean再次创建
  6. 从2号到5号的循环仍然可行

现在,这是涉及浏览器后退按钮的错误情况(从#6开始发生的不同事情):

  1. 在@PostConstruct中创建了page1.xhtml - > page1Bean,查询数据等
  2. 检查/选择数据表中的多条记录,单击"处理"按钮
  3. page1Bean的进程方法将选定的记录存储在flash对象中,并重定向到page2.xhtml
  4. page1Bean被破坏,page2Bean被创建,并且在preRenderView监听器方法中,从flash对象中获取所选记录,并处理它们
  5. 单击浏览器后退按钮page2Bean未销毁,未创建page1Bean
  6. 检查/选择数据表中的多条记录,单击"处理"按钮
  7. page1Bean方法执行(奇怪,因为page1Bean应该被销毁),但无法看到所做的记录选择,并重定向到page2.xhtml
  8. page1Bean没有被销毁(没有日志记录输出),没有创建page2Bean(因为它没有被销毁),像往常一样执行preRenderView监听器,但这一次,flash对象中没有选定的记录

是否可以使用带有浏览器后退按钮的viewscope-beans获得正常体验(就像没有浏览器后退按钮一样)?

这是我的依赖:

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.1.3</version>
    <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

请分享您的想法!

back-button jsf-2

12
推荐指数
1
解决办法
8327
查看次数

HTML5历史记录API:当"返回"到另一个页面时显示JSON,然后再次"转发"

我有一个页面,其中有几个搜索/过滤按钮,当点击时,通过AJAX刷新下面列表的内容.

在这个过程中,我正在修改历史记录(通过pushstate),以便新的过滤页面可以添加书签,因此后退按钮可以正常工作.我也在听popstate事件,对Back做出反应.

我的代码看起来或多或少像这样:

window.addEventListener("popstate", function(ev) {
  if (!window.history_ready) { return; } // Avoid the one time it runs on load 
  refreshFilter(window.location.href, true);
});

refreshFilter: function(newURL, backButtonPressed){
  $.ajax({ url: newURL}).done( blah );

  if (!backButtonPressed) {
    window.history_ready = true;
    history.pushState(null, null, newURL);
  }
}
Run Code Online (Sandbox Code Playgroud)

除了一个奇怪的案例外,这种方法效果很好......

  • 用户在页面"A"
  • 他们点击一个链接转到这个播放历史的页面(让我们称之为"B")
  • 他们运行几个过滤器,然后按回几次,所以他们回到初始状态"B"
  • 他们再次单击Back,将它们发送回"A"
  • 此时,如果他们按下Forward,而不是再次向服务器请求Page"B",浏览器只显示一堆JSON代码作为页面内容(这个JSOn是我的一个AJAX请求的响应)过滤东西)

至少在最新的Chrome中

为什么会发生这种情况,我该如何避免呢?

html5 back-button browser-history html5-history

12
推荐指数
2
解决办法
2873
查看次数

Javascript backbutton事件监听器覆盖android设备后退按钮

我创建了Android app使用cordova 2.6.0.我已经menu在我的应用程序中使用html标记实现了一项功能,并jQuery在与设备进行交互时切换menubutton.但我无法想出达到以下要求,表现得像本机应用程序.

需求

如果是,menu应隐藏在按下设备上.如果不可见,那么现在应该正常行动,也就是它应该是或应该去.backbuttonmenuvisiblemenubackbuttonexitappback history

这是我的代码

document.addEventListener('deviceready', function(){

document.addEventListener('menubutton', function(){
//Toggle Menu
//Which is working fine
});

document.addEventListener('backbutton', function(){
if(menu is visible) {
  //Hide the menu
  //This is also working fine
return false;
} 

//BUT the default action of backbutton has gone. It cannot exit the app , neither it brings to back history.

//return true;
//I …
Run Code Online (Sandbox Code Playgroud)

javascript jquery android back-button cordova

12
推荐指数
1
解决办法
3万
查看次数

在jsf中返回命令按钮

如何实现一个后退按钮作为一个普遍适用的命令按钮?使用后退按钮我不是指浏览器按钮,而是位于页面某处的按钮.并不总是可以使用Post-redirect-get模式.

在按钮应该指向的每个单元上传递信息是非常不可靠的.

可能是导航规则的保留关键字指向应用的上一个导航规则?

java navigation jsf back-button

11
推荐指数
1
解决办法
2万
查看次数

使用MonoTouch的UINavigationController和UINavigationBarDelegate.ShouldPopItem()

当点击UINavigationBar的后退按钮(由UINavigationController控制)时,如何弹出UIAlertView?在某些情况下,我想问用户"你确定吗?" 问题类型,以便他可以中止操作并保持当前视图或弹出导航堆栈并转到父视图.

我发现最吸引人的方法是在UINavigationBar的Delegate上覆盖ShouldPopItem().

现在,这里有一个非常相似的问题:iphone navigationController:在退出当前视图之前等待uialertview响应

还有一些类似性质的其他问题,例如: 检查UIViewController是否即将从导航堆栈中弹出? 以及如何判断在UINavigationControllerStack中按下后退按钮的时间

所有这些状态"子类UINavigationController"作为可能的答案.

然后有一个读取像子类UINavigationController一般不是一个好主意: Monotouch:UINavigationController,覆盖initWithRootViewController

苹果的文档也说的UINavigationController不打算被继承.

其他一些人声称在使用UINavigationController时甚至不能覆盖ShouldPopItem(),因为它不允许将自定义/子类UINavigationBarDelegate分配给UINavigationBar.

我的子类化尝试都没有工作,我的自定义代表没有被接受.

我还在某处读过可能在我的自定义UINavigationController中实现ShouldPopItem(),因为它将自己指定为其UINavigationBar的Delegate.

没什么好吃的,这没用.UINavigationController的子类如何知道属于UINavigationBarDelegate的Methods.它被拒绝:"找不到合适的方法来覆盖".删除已编译的"override"关键字,但完全忽略该方法(如预期的那样).我认为,使用Obj-C可以实现几个协议(类似于C#AFAIK中的接口)来实现这一点.不幸的是,UINavigationBarDelegate不是一个接口而是MonoTouch中的一个类,所以这似乎是不可能的.

我在这里很丢失.当UINavigationBar由UINavigationController控制时,如何在UINavigationBar的Delegate上覆盖ShouldPopItem()?或者有没有其他方法可以弹出UIAlertView并在可能弹出导航堆栈之前等待它的结果?

back-button uinavigationbar uinavigationcontroller xamarin.ios

11
推荐指数
2
解决办法
8653
查看次数

在导航控制器中单击后退按钮时调用哪种方法?

我想在导航控制器中单击后退按钮时保存数据库.

所以我会在方法中插入代码.

在导航控制器中单击后退按钮时调用的方法是什么?

navigation xcode controller back-button ios

11
推荐指数
1
解决办法
9346
查看次数

onKeyDown()或onBackPressed()

我想在我的应用程序中实现后退按钮功能.在应用程序中,只要我点击中间的后退按钮,我的控件就会直接登录页面,那么有人可以告诉我在哪里覆盖onKeyDown()onBackPressed()方法吗?

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.e("back key pressed","Back key pressed");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

因为我正在写这个内部onCreate和外面onCreate也,但它不工作......

android back-button

11
推荐指数
2
解决办法
4万
查看次数

在Spring"Web应用程序"中使用浏览器后退按钮阻止用户遍历

我正在使用spring MVC框架工作开发Web应用程序,我想限制用户在使用我的Web应用程序时使用浏览器返回按钮.我该怎么办spring?是否有内置功能spring

browser spring-mvc back-button

11
推荐指数
1
解决办法
4170
查看次数

如何在Angular 2中禁用浏览器后退按钮

我正在使用Angular 2开发一个网站.有没有办法使用Angular 2禁用或触发浏览器后退按钮?

谢谢

javascript back-button angular

11
推荐指数
6
解决办法
4万
查看次数