我有基于 ajax 搜索的网络(带有输入和结果的过滤器),我想让它工作后退/前进浏览器按钮。所以我必须使用window.history.pushState女巫正在处理内容(搜索结果),但我必须“存储”带有输入和选定值的整个过滤器。
在过滤器输入上,我正在使用SumoSelect插件,如果您将所有 html 元素存储到变量中,然后将其附加回 DOM(按下后退按钮后),SumoSelect 的功能将不再起作用...
这是我的问题。一种可能的解决方案(我所知道的)如何使其在 append 之后工作是使用.contents()而不是.html().
但是,如果使用.contents()的pushState是这样的:
window.history.pushState({"html":results,"filter": $('#filter').contents(),"pageTitle":"title"},"", null);
Run Code Online (Sandbox Code Playgroud)
我得到错误:
DataCloneError: 无法克隆对象。
那么是否有任何选项可以存储过滤器状态以使其工作?
我正在 asp.net core 工作。我面临一个问题,当我通过浏览器后退按钮返回上次访问的网页时,我的控制器操作方法没有被执行。
当我们按下后退按钮时,浏览器会从缓存中获取数据。因此,如果我们想要执行控制器操作方法,我们需要阻止浏览器缓存该页面。
我用谷歌搜索了很多关于这个的信息。通过这个,我发现了很多基于ASP.NET MVC中缓存的解决方案。比如,禁用缓存。
我检查了这个网站并也尝试过。https://learn.microsoft.com/en-us/aspnet/core/performance/caching/response?view=aspnetcore-2.2 。它不起作用。
我们正在根据 cookie 执行一些操作。因此禁用缓存,也不应该清除它。
ASP.NET Core 中是否有其他方法可以在按下浏览器后退按钮时执行控制器操作方法?
提前致谢。
一个子活动的多个父活动工具栏后退按钮
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
我必须重写此函数以实现后退按钮的功能,回调到调用子项的同一父活动,但我不明白以下代码行:
id == android.R.id.home
什么是R.id.home?home代表? 我是否必须R.id.home在任何地方使用相同的后退按钮功能?
我目前正在使用面向AJAX的Web应用程序.我一直在寻找使用浏览器url复制当前AJAX状态(或应用程序状态)的不同方法,因此刷新和后退按钮也可以工作.
在过去的几周里,我看到了不同的方法,包括使用哈希(#)和不同的JS框架.
在文档中说明,无法从JS更改浏览器URL.今天我去了Facebook并打开了一张图片,网址发生了变化(Altough图像在灯箱中打开).关闭图像后,浏览器URL将更改回原始页面.
你知道他们是如何实现这种行为的吗?
我正在使用以下代码行来在注销后禁用浏览器后退按钮问题.
function LogoutOnClick() {
window.history.go(-1);
}
Run Code Online (Sandbox Code Playgroud)
但是,这个代码有一个问题,假设我的第一个页面是登录页面(login.cshtml),第二个成功登录页面(home.cshtml),第三个页面是关于页面(about.cshtml),
现在我登录然后它会在home.cshtml页面上重定向我现在我移动到第三页about.cshtml然后我从about.cshtml页面注销,它重定向我在login.cshtml页面上.
现在,如果我clicked on browser back button再次将我重定向到about.cshtml页面,但用户无法更改或添加任何内容.
所以让我知道是否有任何适当的代码或方法来解决这个问题.
我在这里遇到一个非常奇怪的问题.我有一个带Tabbar控制器和4个选项卡的应用程序,每个选项卡都有一个连接到Viewcontroller的导航控制器.一切都按预期工作,但现在我已经为几个视图添加了一个按钮,它会调用一个模态视图控制器来向上滑动并显示一些内容.在这个Modal VC中,还有另一个隐藏模态视图的按钮.隐藏模态视图后,如果我点击导航栏中的后退按钮,视图不会返回动画,只是在没有动画的情况下立即显示上一个视图,而导航栏确实是动画的.但是,当我使用标签栏切换到另一个视图并立即切换回来时,它会突然再次开始工作.
我正在使用没有Storyboard的iOS SDK 6,因为我几年前在iOS 3.2上开发了这个应用程序
这就是我展示Modal VC的方式:
-(void)reportIssue{
ReportIssueViewController *rivc = [[ReportIssueViewController alloc] initWithNibName:@"ReportIssueViewController" bundle:[NSBundle mainBundle]];
[self.navigationController presentModalViewController:rivc animated:TRUE];
[rivc release];
}
Run Code Online (Sandbox Code Playgroud)
这就是我隐藏它的方式:
- (IBAction)cancelIssue:(id)sender {
[self dismissViewControllerAnimated:TRUE completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)
有没有人有这样一个奇怪的问题?关于如何摆脱这种行为,我会很高兴.
提前致谢.
back-button uinavigationcontroller presentmodalviewcontroller ios
我正在研究JSP.我知道有很多关于这个主题的帖子,但没有什么对我有用.我有一个登录页面,通向欢迎页面.当用户单击注销时会话无效,然后重定向到登录页面.但是,如果用户单击浏览器后退按钮,他将再次进入欢迎页面,但如果他按下任何其他按钮或刷新页面,他将被带到登录页面,因为会话已过期.但是我不希望用户在注销后通过单击浏览器后退按钮来访问欢迎页面.我尝试使用以下内容:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我试过用:
window.history.forward(1);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但它导致另一个问题.如果用户登录并进入欢迎页面.然后用户按下按钮,让我们说"显示用户详细信息",然后用户进入"显示用户详细信息"页面.现在,如果用户单击后退按钮返回欢迎页面.由于window.history.forward(1)欢迎页面上的原因,他会保持相同的"显示用户详细信息" 页面.
如果会话有效,我希望用户应该能够使用浏览器后退按钮.如果会话无效,他应该无法使用浏览器后退按钮.
我想知道如何"BACK Button"在设备上检测硬盘或软盘?我搜索了但大多数时候我发现了这段代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
但我只需要检测设备上是否存在BACK按钮,或者不是硬或软的形式.
在使用DrawerLayout的Android游戏中,左侧和右侧导航抽屉由MainActivity中的以下代码关闭:
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(mLeftDrawer)) {
mDrawerLayout.closeDrawer(mLeftDrawer);
} else if (mDrawerLayout.isDrawerOpen(mRightDrawer)) {
mDrawerLayout.closeDrawer(mRightDrawer);
} else {
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用(左侧截图) -
但是我也试图通过以下方法检测我的自定义视图中的后退按钮按下(它覆盖onDraw了绘制可滚动游戏板和字母图块的方法) - (允许应用程序用户取消图块交换或从游戏板中调用未播放的图块) -但没有人被称为:
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (mSwapping && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}
return super.dispatchKeyEventPreIme(event);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (mSwapping && keyCode == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}
return super.onKeyPreIme(keyCode, event);
}
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) android back-button android-custom-view navigation-drawer drawerlayout
back-button ×10
javascript ×4
android ×3
ajax ×2
jquery ×2
appbar ×1
asp.net-core ×1
browser ×1
caching ×1
dart ×1
drawerlayout ×1
facebook ×1
flutter ×1
html ×1
ios ×1
jsp ×1
pushstate ×1