标签: back-button

子iframe onload事件是否可以在父窗口上触发URL更新并仍在浏览器上保留后退按钮功能?

问题在于iframes/bookmarkablity和后退按钮功能.

我面临的这个问题是如何使用可收起书签的url创建iframe而不会丢失后退按钮功能.让我们说所有页面都在同一个域中,并且子页面通知父页面的子页面加载以更新window.location.hash属性修改当前浏览器地址栏.
url的更新在IE/FF/webkit上正常工作.但是后退按钮在IE-8中按预期工作,但浏览器后退按钮在FF/webkit中不起作用(只是url更改了前一页未加载).如果我们不更新window.location.hash属性,则后退按钮可以工作但窗口网址没有意义.
有没有办法在浏览器中获得此功能,或者是否有更简单的方法(任何其他js库).所有页面都在同一台服务器上提供,以解决权限问题.

以下文件是

  • index_parent.html(包含iframe)
  • son.html
  • grandson.html

儿子和孙子是链接的,父子iframe中的儿子和孙子之间的任何导航都会更新地址栏,但会破坏FF中的后退按钮.

cat index_parent.html

<html>    
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
 <title>Parent</title>    
    <style>   
        body{   
            margin:0;   
            overflow: hidden;     
        }    
        iframe {   
     border: 1;    
            height: 100%;   
            width: 100%;   
            overflow-x: hidden;   
        }   
    </style>     

      <script language="javascript">    
        function update(url,title){     
        alert("parent_update")    
        document.title=title;    
        window.location.hash ="#" + url; // comment this to get the back button working   
                    //in FF/webkit --but makes the url  non bookmarkable     
         }    
        function parent_loader(){   
        alert("parent_loader")    
        if (window.location.hash.substr(1)) {   
            document.getElementById("embedframe").src=window.location.hash.substr(1);    
        } else {    
            document.getElementById("embedframe").src="son.html";    
        }    
         }    
    </script>   

</head> …
Run Code Online (Sandbox Code Playgroud)

javascript address-bar iframe bookmarks back-button

5
推荐指数
1
解决办法
2399
查看次数

我们可以禁用leftBarButtonItem的导航控制器,它是iPhone中视图控制器的后退按钮吗?

我想禁用导航控制器的默认后退按钮

self.navigationItem.rightBarButtonItem.enabled = NO; 
// Below code does not work since leftBarButtonItem is always nil.
self.navigationItem.leftBarButtonItem.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

我已经手动显示如下,但有没有任何属性禁用默认后退按钮只有一行?

backButton = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 100, 30)];
[backButton setBackgroundImage:[UIImage imageNamed:@"backbutton_100.png"] forState:UIControlStateNormal];
[backButton addTarget:self  action:@selector(backAction:)  forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"  All Customers" forState:UIControlStateNormal];
backButton.titleLabel.font = [UIFont boldSystemFontOfSize:12];
[buttonView addSubview:backButton];

UIBarButtonItem* leftButton = [[UIBarButtonItem alloc] initWithCustomView:buttonView];
self.navigationItem.leftBarButtonItem = leftButton;
[leftButton release];

// Now it is working.
self.navigationItem.leftBarButtonItem.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

objective-c back-button uibarbuttonitem

5
推荐指数
2
解决办法
7994
查看次数

假冒KeyEvent不能正常工作*就像"真实"按钮一样.为什么?

我试图用KEYCODE_BACK调用我的主要活动的onKeyDown(),这样它就像我自己按下"后退"按钮一样.我使用以下代码执行此操作:

   KeyEvent goBackDown = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0,0);
    goBackDown.dispatch(activity);
    SystemClock.sleep(50);  // as if human pressed the key
    KeyEvent goBackUp = new KeyEvent(0,0,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0,0);
    goBackUp.dispatch(activity);
Run Code Online (Sandbox Code Playgroud)

我的活动的onKeyDown()目前只调用:

return super.onKeyDown(keyCode, event);
Run Code Online (Sandbox Code Playgroud)

然而,与真正的 Back按钮不同,当调用"假"代码时,活动拒绝变得不可见.

为什么?

android keyevent back-button onkeydown onpause

5
推荐指数
1
解决办法
7184
查看次数

当显示软键盘时按下后退按钮时清除焦点EditText

我知道这里有很多关于这个问题的问题.但他们中没有人能得到我正在寻找的答案.

我在ScrollView中有7个ET.当我启动应用程序时,没有ET有焦点,因为我在我的整体布局中添加了以下两行:

android:focusable="true"
android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)

当我点击ET时,会显示我想要的软键盘,然后我设置了值(比方说20).我按下'2'后跟'0'然后按后退按钮.此时键盘消失,但焦点仍然存在.当按下后退按钮隐藏键盘时,我也希望清除焦点.

因为当清除焦点时,ET的布局设置为我想要的.

他们都有一些代码,这是:

    // Right Cable
    RightCable = (EditText) findViewById (R.id.RightCable);
    RightCable.setRawInputType(Configuration.KEYBOARD_12KEY);
    RightCable.setOnFocusChangeListener(FocusChanged);
    RightCable.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            if(RightCable.isFocused()){
                LengthRightCable       = Double.parseDouble(RightCable.getText().toString());
                Calculate();
            }
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if(s.toString().matches("")) {
                RightCable.setText("0.00");
                Selection.setSelection(RightCable.getText(), 0, 4);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我使用焦点监听器将ET的输入更改为5.00而不是0的数字.

OnFocusChangeListener FocusChanged = new OnFocusChangeListener() {

    public void onFocusChange(View v, boolean hasFocus) {

        EditText et = …
Run Code Online (Sandbox Code Playgroud)

android focus back-button android-softkeyboard android-edittext

5
推荐指数
1
解决办法
3325
查看次数

无法捕获android后退按钮事件

我想抓住Android的后退按钮事件.我知道在表单上已有很多关于此的内容,但是,我的代码不能像给出的示例那样工作.这是我捕获事件的代码片段:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode == KeyEvent.KEYCODE_BACK){
        Log.d(TAG, "back key captured");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

@Override
public void onBackPressed(){
    Log.d(TAG, "in onBackPressed");
    finish();
}
Run Code Online (Sandbox Code Playgroud)

任何事件被触发的LogCat输出都没有显示出来.有人知道可能的原因吗?

谢谢.

android button keyevent back-button

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

当按下后退按钮时,Javascript会更改为丢失的dom

我有这个视图,改变div内的文本.

然后,用户可以单击链接以跳转到另一个页面.但是当用户按下"后退"按钮时,所有DOM更改都将丢失.

FF会记住更改的div文本,但Chrome和IE不会.

我发现了类似的问题,但在我的情况下,不可能通过url哈希来概括状态,因为div包含随机数据.

我需要的是当用户返回时,div从相同的数字序列中填充.

<script type="text/javascript">
    function ChangeText() {
        var newText = "";

        for (var i = 0; i < 10; i++) {
            newText = newText + Math.random() * 100;
            newText = newText + "<br />";
        }

        $("#container").html(newText);
    }
</script>

<div id="container">
    INITIAL TEXT
</div>
<button onclick="ChangeText()">Click here to generate random numbers</button>
<br/>
<a href="http://www.google.com">External link</a>
Run Code Online (Sandbox Code Playgroud)

javascript dom back-button

5
推荐指数
1
解决办法
3070
查看次数

如何更改iOS上后退按钮的位置?

您看到我正在创建一个完全自定义的导航栏,当我创建后退按钮时,它不会保留在正确的位置,因为您可以在代码下方看到.

这是我的应用程序代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    if(self.navigationController.viewControllers.count > 1) {
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setTitle:@"" forState:UIControlStateNormal];
    [backButton setBackgroundImage:[UIImage imageNamed:@"backButton.png"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside];
    backButton.frame = CGRectMake(0.0f, 0.0f, 44.0f, 45.0f);
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    self.navigationItem.leftBarButtonItem = backButtonItem;
}
Run Code Online (Sandbox Code Playgroud)

}

图片http://s8.postimage.org/k5faqz0jp/Scr​​een_Shot_2013_01_24_at_5_30_10_PM.png

iphone objective-c back-button uinavigationcontroller ios

5
推荐指数
1
解决办法
9012
查看次数

区分jquery地址插件中的后退/前进

从文档(http://www.asual.com/jquery/address/docs/)中可以看出,该插件有一个事件可以检测何时按下浏览器的后退/前进按钮.

$ .address.externalChange(FN)

我的问题是,是否有办法知道何时按下背部以及何时按下前进.例如,这将适用于两种情况:

$.address.externalChange(function() { console.log('back/forward pressed'); });
Run Code Online (Sandbox Code Playgroud)

谢谢.

jquery plugins back-button jquery-address

5
推荐指数
1
解决办法
855
查看次数

使用IE8 +中的Twitter引导选项卡启用后退按钮处理

Bootstrap 2.3.2

我在我的项目中使用Bootstrap中的选项卡来显示内容.在单个页面上有多个具有不同内容的选项卡,在这些选项卡中是用于将用户带到网站上其他页面的链接.

不幸的是,默认情况下,选项卡不支持后退按钮导航,因此如果用户访问另一个页面并点击浏览器的后退按钮,该选项卡将恢复到第一个打开的选项卡,而不是上次查看时的活动选项卡.页.

以下来自FrançoisZaninotto的Javascript 解决了Chrome,Firefox和Safari中的这个问题.François还说它适用于IE8 + - 但在我的测试中,我无法让它在IE8,IE9或IE10上运行.有谁知道如何让这个在IE8 +中工作?可能吗?

$(document).ready(function() {
  // add a hash to the URL when the user clicks on a tab
  $('a[data-toggle="tab"]').on('click', function(e) {
    history.pushState(null, null, $(this).attr('href'));
  });
  // navigate to a tab when the history changes
  window.addEventListener("popstate", function(e) {
    var activeTab = $('[href=' + location.hash + ']');
    if (activeTab.length) {
      activeTab.tab('show');
    } else {
      $('.nav-pills a:first').tab('show');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

`

    <ul id="myTab" class="nav nav-pills">
              <li class="active"><a href="#tab1" data-toggle="tab">Tab1</a></li>
              <li><a href="#tab2" …
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5 back-button twitter-bootstrap

5
推荐指数
1
解决办法
4240
查看次数

返回第二个上一个活动

问题可能是愚蠢但我会问它,例如我有3个活动,活动1,2,3.

活动1,我点击一个按钮,转到活动2活动2,我点击一个按钮,转到活动3.活动3,我点击后退按钮,我希望它回到活动1.任何想法怎么做?对不起Android新手.谢谢!

android back-button android-activity

5
推荐指数
1
解决办法
3817
查看次数