我有一个带有客户端分页和过滤的页面。该页面列出了大约 200-300 个产品。该页面包含一些过滤器,如类别、制造商和重量。单击任何页码或过滤器,我正在使用 Jquery 在客户端处理页面内容。
一切正常,直到这一步。现在有一个用例,我遇到了问题。
用户有什么办法可以通过单击后退按钮获得先前选择的过滤器的页面?
我的应用程序使用 aDefaultHttpClient发出网络请求。有时(通常在很长一段时间后恢复应用程序后)应用程序将停止加载数据,我需要在它再次加载内容之前将其从最近的应用程序列表中清除。
我的问题是,两者之间有什么区别: - 通过点击后退按钮关闭应用 - 从最近的应用列表中清除该应用
当我的应用停止加载内容时,通过后退按钮退出并重新打开并不能解决问题。只有通过从最近的应用程序列表中清除它才能杀死该应用程序。
当用户使用后退按钮退出时,有没有办法“杀死”应用程序?
谢谢
只是为了确保,我不是在问如何捕捉后退/前进按钮事件。
window.addEventListener('popstate', function (e) {
alert("Yahoooo!!!!");
});
Run Code Online (Sandbox Code Playgroud)
上面的那个函数是浏览器的后退按钮还是浏览器的前进按钮触发的,但我无法检测到点击了哪个?是后退键还是前进键?
是否有任何特定事件让我可以检测到它是“后退”或“前进”按钮?
编辑:虽然我很欣赏的“重复问题”的建议,在类似的问题张贴在这里的计算器,但接受的答案是从2012年1月!从那时起,很多事情都发生了变化。也许已经有更简单的方法了!
谢谢
subscribeWithPriority不使用 Ionic 5 进行调用。
这是我的app.component.ts功能:
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
alert("initialed!"); // this called, and I can see this.
this.platform.backButton.subscribeWithPriority(0, (processNexthandler) => {
console.log('Back press handler!');
alert(888) // this never called
});
}
}
Run Code Online (Sandbox Code Playgroud)
第一个警报显示它已调用initializeApp,但我从未看到下一个警报888。我尝试了其他优先级,例如9999或0, -1`,但这些都不起作用。
如何正确使用调用我的函数subscribeWithPriority?
当提交Web表单并将用户带到另一个页面时,通常情况下用户将单击"后退"按钮以再次提交表单(在我的情况下,表单是高级搜索.)
如何在用户单击"返回"时可靠地保留用户选择的表单选项(因此,如果他们只更改了多个表单元素中的一个,则不必从头开始填写表单?)
我是否必须沿着会话数据(cookie或服务器端)存储表单选项的路线,或者有办法让浏览器为我处理这个问题吗?
(环境是PHP/JavaScript - 该网站必须适用于IE6 +和Firefox2 +)
我有一个客户端刚拿到Apple Magic Mouse.我们建立了一个食谱网站,当她输入食谱的所有信息时,她感到非常沮丧,然后转向她的新鼠标并意外滚动到右边,它将进行后退浏览,所有她的信息都丢失了.所以她想警告/弹出以防止在该页面上发生这种情况.
有什么建议或指向我这样做的JS吗?
是否有正确处理墓碑和后退键的最佳做法?
正如MSDN文档中所述,您应该在OnNavigatedFrom方法中保存瞬态数据.好的,所以在墓碑清除时保存状态的代码.
但是现在如果按下后退键,OnNavigatedFrom也会调用该方法,如果不添加额外的检查,则首先将状态保存到字典中,然后不久就会销毁页面.PhoneApplicationPage.State字典也是如此.因此保存代码完全浪费了CPU,磁盘和电池时间.
这就是我为防止它而采取的措施:
protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
// when navigating back
if (e.NavigationMode == System.Windows.Navigation.NavigationMode.Back)
{
backKeyPressed = true;
}
}
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
if (backKeyPressed)
{
// Don't save states on back key!
backKeyPressed = false; // set it anyway
return;
}
// Tombstoning
// save objects
this.SaveState("text", someText);
...
}
Run Code Online (Sandbox Code Playgroud)
提醒一下:OnNavigatingFrom只有在从页面导航/返回时才会调用,而不是在应用程序被逻辑删除时调用.
附注:显示的代码仅涵盖只能导航回来的页面.这就是为什么我添加backKeypressed OnNavigatingFrom.如果页面可以导航到另一个页面,则需要额外检查.
backKeyPressed变量并检查我创建的每个页面吗?你对此有何看法?
编辑:
更新的问题使其更清晰.
后退按钮事件window.onbeforeunload不会被处理onbeforeunload程序捕获,也不会由处理程序处理.
关于捕获后退按钮没有什么好答案的问题有一些问题,但是如果用户点击浏览器的后退按钮同时在SO上创建一个新问题则询问他是否确定他想要继续弹出.
此消息框在Chrome和FF之间有所不同,并且感觉很原生.
窗帘背后是什么?
如何让浏览器弹出一个消息框,让用户可以选择保留当前页面(如同onbeforeunload)?
提前感谢任何试图帮助我的人.
我有一个表单,我将复选框添加到via appendChild()- 作为用户选择的选项 - 基于一系列标准.
当用户选中这些框中的任何一个,然后单击"继续"按钮将选择发布到另一个页面 - 然后单击后退按钮 - 用户检查的复选框 - 现在已被浏览器忘记(不再选中).
如果我使用php编写复选框或只是使用静态复选框 - 当用户选中任何这些框,然后单击"继续"按钮将选择发布到另一个页面 - 然后单击后退按钮 - 将记住所选的复选框(仍然检查)
我的问题是:
为什么浏览器忘记了用appendChild()创建复选框时用户所做的选择
但是相同的浏览器会记住用户在使用静态复选框时所做的选择
有什么关于appendChild()不允许相同的浏览器记住选中的选择?
[div id="mydiv"] here is where the checkboxes are going[div]
[script type="text/javascript"]
var newInput = document.createElement("INPUT");
newInput.id = "mycheckboxid";
newInput.name = "mycheckboxname";
newInput.type = "checkbox";
document.getElementById('mydiv').appendChild(newInput);
[/script]
Run Code Online (Sandbox Code Playgroud) iOS 7采用新手势,在屏幕上从左向右滑动,作为UINavigationController中"后退"按钮的快捷方式.
我的应用程序似乎没有免费获取此行为.我需要做什么才能使这个手势可用于我的iOS应用程序(在iOS 5.1及更高版本的Xcode 4.6.3中构建)?
这是一篇有关视频的文章,从用户的角度来看,您想要了解iOS 7中的新手势.
答案可能与interactivePopGestureRecognizer有关,它是一个UIGestureRecognizer子类.
back-button ×10
javascript ×6
android ×1
appendchild ×1
back ×1
browser ×1
dom ×1
forms ×1
ionic5 ×1
ios7 ×1
jquery ×1
navigation ×1
php ×1
session ×1
tombstoning ×1