标签: back-button

Safari和Chrome修改后退按钮上的表单数据

我在Safari和Chrome中遇到了这个奇怪的问题(适用于Firefox和IE).

  1. 我从这个复选框列表开始,其中第一个项目"A"已选中,项目"B"和"C"未选中
  2. 然后我导航到另一个页面,该页面命令出现在复选框列表中的项目
  3. 我改变了列表中项目的顺序,现在它变为'B','A','C'
  4. 我按下后退按钮
  5. 从服务器重新获取页面(我已禁用缓存),我检查从服务器发送的响应,仍检查项目"A",不再是列表中的第一项.
  6. !!!奇怪的行为!!! 页面已在浏览器中加载新订单"B","A","C",但未选中"A",而是选中第一个"B"项.

不知何故,按下后退按钮似乎已恢复检查项目的位置,并且已丢弃从服务器发送的表单数据.

刷新页面时,订单为"B","A","C"和项目"A"现在已经过检查,一切正常.

在两种情况下,Page都将IsPostBack设置为false.

这是Web工具包中的错误吗?

尝试,清除缓存,进入隐私浏览模式,清除历史记录.还是一样的行为.

c# safari google-chrome back-button

7
推荐指数
2
解决办法
2312
查看次数

Android - onBackPressed()不起作用

我有针对Android 2.1的应用程序构建,我想覆盖后退按钮.

我跟着这个例子:

http://android-developers.blogspot.com/2009_12_01_archive.html

我的代码如下:


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                && keyCode == KeyEvent.KEYCODE_BACK
                && event.getRepeatCount() == 0) {
            Log.d("CDA", "onKeyDown Called");
            onBackPressed();
        }

        return true;
    }

    @Override
    public void onBackPressed() {
    Log.d("CDA", "onBackPressed Called");
        Intent setIntent = new Intent(Intent.ACTION_MAIN);
        setIntent.addCategory(Intent.CATEGORY_HOME);
        setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(setIntent); 

        return;
    }   
Run Code Online (Sandbox Code Playgroud)

它适用于pre 2.x设备,但不适用于具有2.1 update-1的Hero和具有2.2的Nexus One.

这个例子中是否有我遗漏的东西?或者任何人都可以指出它为什么不起作用?

我甚至没有在logcat中按下按钮.

android overriding back-button

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

后退按钮上的清晰表格?

我有一个页面,其中包含一个表单中的几个复选框,选中后,使用jquery从表中过滤相应的信息.我的问题是以下场景:

  1. 有人检查一个或多个框,从表中隐藏行

  2. 他们点击一个链接,转到另一个页面

  3. 他们点击后退按钮.

此时,仍然会选中复选框(至少在chrome中),但所有表行都可以再次查看.

有任何想法吗?

forms checkbox jquery back-button browser-cache

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

如何将AJAXy页面更新与"后退"按钮混合,以便在用户返回时仍然存在更新?

我有一个用户可以修改的页面.所有修改都使用JQuery执行,并且还发送到服务器,因此完全重新加载也将生成修改后的页面.

这在Windows上的Firefox 11/Chrome中工作正常:即使用户导航到其他地方然后使用"后退"按钮,他们也会获得包含最新编辑的页面.

但是,如果我现在将Google地图嵌入到页面中,则"后退"按钮将停止工作:它会将用户带到页面之前的所有编辑状态.除了在浏览器的缓存中,此页面甚至不再存在,但它仍会显示.

我在这里放了一个简单的测试用例 显示这种行为.

是什么赋予了?我怎样才能解决这个问题?完美的解决方案只允许浏览器返回而不重新加载页面,就像它通常会做的那样.

PS显然,"工作"示例实际上并不适用于OSX上的Chrome.我如何解决浏览器坚持回到页面陈旧版本的问题?

描述此行为的错误报告:Firefox


赏金:Windows上的Firefox和Chrome 表现出两种行为(在一种情况下返回修改后的DOM,但在另一种情况下不再修改).是否有描述浏览器该做什么的规范?是否存在以这种或那种方式改变的错误?这个问题有一个我可以google的通用名称吗?

我正在考虑一个解决方案,我通过JavaScript更新隐藏元素,然后检查更新是否仍然存在.如果是这样,"后退"按钮恢复了最新的DOM,并且不需要做任何其他事情.如果没有,浏览器恢复过时的DOM,我可以强制重新加载页面,就像那样令人不快.对这种方法的任何评论也是受欢迎的.

注意:真实网站有比这更可编辑的控件,其中一个是自由格式文本区域.即使用户刚刚添加了几段文本,我也希望提议的解决方案能够正常工作.例如,这种东西不能附加到URL之后#.

html browser ajax back-button

7
推荐指数
1
解决办法
1536
查看次数

Android - 禁用设备返回按钮

我正在使用PhoneGap处理android应用程序.我需要使用以下代码处理设备后退按钮功能:

 import com.phonegap.DroidGap;
 public Class MyClass extends DroidGap {
 appView.setOnKeyListener(new OnKeyListener() { 
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
                finish();
                return true;
            }
            return onKeyDown(keyCode, event); 
        } 
    });
  }
Run Code Online (Sandbox Code Playgroud)

通过使用上面的代码,应用程序退出,因为我已经使用finish();但我想什么都不应该发生在点击设备后退按钮.我怎么能实现这一点?请帮我.

android back-button cordova

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

按下后退按钮时,前一屏幕上的导航标题消失

导航栏标题有问题.我有2个屏幕,当我点击屏幕2上的后退按钮时它将返回到屏幕1,但屏幕1的标题消失.这是我的代码段

screen1 .m

    - (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.title = @"title 1";
....
Run Code Online (Sandbox Code Playgroud)

屏幕2 .m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.title = self.stringTitle;

    // change the back button and add an event handler
    self.navigationItem.hidesBackButton = YES;
    //set custom image to button if needed
    UIImage *backButtonImage = [UIImage imageNamed:@"btn_back.png"];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:backButtonImage forState:UIControlStateNormal];
    button.frame = CGRectMake(-12, 2, backButtonImage.size.width, backButtonImage.size.height); …
Run Code Online (Sandbox Code Playgroud)

objective-c back-button title navigationbar ios

7
推荐指数
1
解决办法
6669
查看次数

iOS WatchKit - 如何检测Watch上何时按下后退按钮?

当Apple Watch上按下后退按钮(箭头)时,我需要在第二个视图控制器上进行一些清理.当按下后退按钮/弹出视图时,是否有任何检测/处理方法?

注意 - 我不能使用'willDeactivate()'函数,因为它让我陷入循环中我想要做的事情.

back-button uinavigationcontroller popviewcontroller ios watchkit

7
推荐指数
1
解决办法
1782
查看次数

Gatsby.js:使用URL参数和浏览器后退/前进按钮进行导航

我有一个文章组件,显示帖子列表.该列表是分页的,因此每页最多可显示10个帖子.有一个"下一页"按钮,单击时将更新组件状态和相应的url参数,如下所示:

第1页:/ news

第2页:/ news?page = 2

第3页:/ news?page = 3

...等等.设置constructor()render()方法的方式,如果用户直接导航到/ news?page = 3,它将读取此URL参数并显示正确的帖子.

我遇到的问题是浏览器后退和前进按钮似乎没有重新呈现页面.因此,如果用户点击"下一页"按钮几次然后点击后退按钮,则URL将更新,但页面将不会重新呈现.有没有办法强迫它这样做?

我猜测有一种方法可以通过添加一个window.history监听器来实现这一点,但我不确定是否有推荐的练习gatsby-link.

以下是该组件的精简版本供参考:

import React, { Component } from 'react';
import { navigateTo } from 'gatsby-link';
import getUrlParameter from '../functions/getUrlParameter';

export default class extends Component {
  constructor(props) {
    super(props);

    /* external function, will grab value
    * of ?page= url parameter if it exists */
    const urlParamPage = getUrlParameter('page');
    const currentPage = urlParamPage ? urlParamPage : 1;

    this.state = { …
Run Code Online (Sandbox Code Playgroud)

back-button browser-history reactjs react-router gatsby

7
推荐指数
1
解决办法
6364
查看次数

为什么我的ProgressDialog会在任何键(触摸)而不是后退按钮上进行侦听?

我有一个像这样实现的ProgressDialog:

// show progress dialog while date is loading
        progressDialog = ProgressDialog.show(XYActivity.this, getResources().getString(R.string.progress_dialog_please_wait), getResources().getString(R.string.progress_dialog_loading), true);
        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                cancel(true);
                Log.w(LOGTAG, "loading cancelled via back button");
            }

        });
        progressDialog.setCancelable(true);
Run Code Online (Sandbox Code Playgroud)

此ProgressDialog在AsyncTask(PreExecute)中实现,因此cancel(true)方法停止AsyncTask.一切正常.

问题是,我可以取消的ProgressDialog 与任何随机触摸我的屏幕上.我只想通过按下后退按钮来解除对话框.请帮我!感谢你们.

android dialog progress back-button

6
推荐指数
1
解决办法
3120
查看次数

如何使用聚合物检测浏览器后退按钮点击事件?

是否可以通过浏览器中的历史记录返回按钮检测用户是否输入了页面?我希望用聚合物检测这种作用.

javascript back-button polymer polymer-1.0

6
推荐指数
1
解决办法
1505
查看次数