用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?相关的知识,希望对你有一定的参考价值。

后退按钮是浏览器的后退。

按后退键, 指的是上一个看到的界面, 不仅是子页面后退, 是子页面和父页面一同后退的.

比如:
第一个界面: 父页面上显示A, 子页面显示A
第二个界面: 父页面上显示B, 子页面显示B
第三个界面: 父页面上显示B, 子页面显示C

就是说第二次切换时, 只有子页面换了, 父页面并未换, 所以在后退时, 也只后退子页面. 而再按一次, 就是父页面子页面同时后退了.

结果是: 按一次后退, 退到父B子B, 再按一次, 就退到父A子A.
参考技术A 整个父页面后退:javascript:parent.history.go(-1);
整个父页面跳转:parent.location.href="index.jsp";本回答被提问者采纳
参考技术B javascript:history.back()后退
javascript:history.forward()前进
参考技术C 呵呵

要把焦点放到父页面

UINavigationController 后退按钮标题总是显示“后退”

【中文标题】UINavigationController 后退按钮标题总是显示“后退”【英文标题】:UINavigationController Back button title always show "Back" 【发布时间】:2014-07-03 12:25:32 【问题描述】:

我正在开发一个IOS 应用程序。我正在使用导航控制器。如果我推到下一页,则返回按钮标题不会在 IOS 7 中显示上一页标题。返回按钮标题在 IOS 7 中始终为“返回”。我在viewWillAppearviewDidload 中设置了所有页面标题,如下所示。但它不起作用。

self.navigationItem.title=@"Previous Page Title";
self.title  = @"Previous Page Title";

在IOS 7中我可以用上一页标题设置后退按钮标题

感谢

【问题讨论】:

【参考方案1】:

如果标题很大,返回按钮只显示返回。试试短标题,比如

self.title = @"Test";

如果您想要长标题,请使用自定义后退按钮。

【讨论】:

非常感谢您。没关系:) 如果标题太大,它只会显示后面( 【参考方案2】:

在 iOS 7 中,后退按钮的长度受到限制(我认为是 11 个字符)。您可以像这样设置自定义“后退按钮标题”,例如在具有长标题的视图控制器中的viewDidAppear(不是当前视图控制器!):

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back Title"
                                                                         style:UIBarButtonItemStylePlain                                                                               
                                                                        target:nil
                                                                        action:nil];

【讨论】:

【参考方案3】:

如果你想强制总是有返回按钮,但仍然让系统为你创建它(将处理“返回”本地化,如果当前标题真的很长,则将按钮缩写为单个“

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"                                                                                               really long never shown title"
                                                                         style:UIBarButtonItemStylePlain                                                                               
                                                                        target:nil
                                                                        action:nil];

【讨论】:

【参考方案4】:

试试这个代码:

[[UIBarButtonItem alloc] initWithTitle:@"Your Title Here"
                         style:UIBarButtonItemStylePlain                                                                               
                         target:nil action:nil];

或者您可以像这样为按钮设置图像:

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"arrow.png"] style:UIBarButtonItemStylePlain target:self action:@selector(back:)];

self.navigationItem.leftBarButtonItem = barBtn;

还有@selector方法:

-(void)back:(id)sender
  [self.navigationController popViewControllerAnimated:YES];

【讨论】:

以上是关于用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?的主要内容,如果未能解决你的问题,请参考以下文章

解决 iframe 后退不是主页面后退(浏览器 history)问题

解决 iframe 后退不是主页面后退(浏览器 history)问题

使用iframe后 浏览器后退不能使用!如何解决!

嵌入 iframe 的页面 history 流程(浏览器后退)

使用自定义后退按钮后导航标题消失

如果上一个视图没有标题,如何让导航栏后退按钮总是说回来?