我正在使用一些使用JQuery的$(document).ready功能来设置jqGrid实例的代码.即使通过后退按钮单击返回页面,似乎也会触发代码.
在精简测试页面中,通过后退按钮点击时不会调用类似的就绪函数:
<html>
<head>
<script type="text/javascript" src="/JQuery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
alert('ready');
})
</script>
</head>
<body>
<p>Index View</p>
<a href="detail.html">Detail</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你能给我一些关于在哪里寻找导致这种行为差异的原因的提示吗?
我在这个问题的答案中找到了一些相关信息,但是带有过度活动就绪事件的页面没有为卸载注册的事件处理程序.
在下面的屏幕截图中,如果我点击"可用信息亭"中的"v",则启动后退按钮的操作...(不是第二个"a").

我不明白为什么,我的代码没什么特别的(这是导航控制器处理的默认后退按钮).我也遇到了与我做的另一个应用程序相同的错误,但我从未在其他应用程序上注意到这一点
有任何想法吗 ?
谢谢.
注销后,如果我按浏览器中的“后退”按钮,它不应显示上一页,而必须转到默认页面(仅登录页面)。
因此,我尝试了多种方式(ruby on rails应用程序),例如“ history.forward()”,“ onbeforeunload”,使元标记中的缓存过期,“ http://www.brookebryan.com/后退按钮检测”如此之多。 。 我很迷茫。
有人可以提出解决方案吗?
我有一个JSF页面,它将数据发布到外部页面.数据从JSF托管bean加载,该bean在post数据中生成唯一ID.
我有一个问题,用户点击结帐按钮然后导航回同一页面并再次按下结帐按钮.帖子数据尚未更新.而且,bean根本没有被调用.反正是否强制JSF重新加载页面和表单数据?
<form action="#{checkoutBean.externalUrl}" method="post"
id="payForm" name="payForm">
<input type="hidden" value="#{checkoutBean.uniqueID}" />
<input type="submit" value="Proceed to Checkout" />
</form>
Run Code Online (Sandbox Code Playgroud) 我有一个包含iframe的页面.iframe可以获取用户的输入(通过按钮单击或菜单选择)并相应地显示内容.我需要的是,当用户操作iframe时,浏览器会将每组iframe参数推送到历史记录中; 当用户点击后退按钮时,iframe将使用上一个历史记录条目中保存的参数重新加载其内容.我有一段代码正在进行重新加载,如下所示.
奇怪的是,当我在iframe上进行多项设置(因此将多个状态条目添加到历史记录中),然后单击后面时,它会像这样工作,
假设我在历史上有状态4,3,2并且我现在处于状态5
因此,在每次成功恢复状态的点击之后,需要两次点击才能触发popstate事件(我也尝试了statechanged事件,同样的结果)并恢复到另一个先前的状态.
谁知道这里发生了什么?提前致谢.
History.Adapter.bind(window, "popstate",
function (event) {
console.log("----state changed------", History.getState());
console.log("----state data------",History.getState().data.state);
//code to do reload an iframe to its proper state
});
Run Code Online (Sandbox Code Playgroud) 我试图覆盖后退按钮,以便它返回上一页,但它只是退出应用程序.这里;代码..请告诉我哪里出错了.
package com.example.thebase;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainAccelerometer extends Activity implements AccelerometerListener{
WebView myWebView;
//Back Button Code
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(myWebView.canGoBack() == true){
myWebView.goBack();
}else{
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
//--------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.accelerometer_example_main);
//ENABLING JAVASCRIPT CODE
WebView myWebView = (WebView) findViewById(R.id.webview); …Run Code Online (Sandbox Code Playgroud) 我需要关闭back按下和home按钮事件的系统警报窗口.我试过onKeyEvent但是徒劳无功.由于我们无法捕获服务中的back按下事件,如何实现这一目标?
我正在尝试处理NativeScript应用程序中的硬件后退按钮.我正在使用带有Angular的NativeScript版本2.3.0.
这是我在main.ts档案中的内容
// this import should be first in order to load some required settings (like globals and reflect-metadata)
import { platformNativeScriptDynamic, NativeScriptModule } from "nativescript-angular/platform";
import { NgModule,Component,enableProdMode } from "@angular/core";
import { AppComponent } from "./app.component";
import { NativeScriptRouterModule } from "nativescript-angular/router";
import { routes, navigatableComponents } from "./app.routing";
import { secondComponent } from "./second.component";
import {AndroidApplication} from "application";
@Component({
selector: 'page-navigation-test',
template: `<page-router-outlet></page-router-outlet>`
})
export class PageNavigationApp {
}
@NgModule({
declarations: [AppComponent,PageNavigationApp,secondComponent
// ...navigatableComponents
], …Run Code Online (Sandbox Code Playgroud) 我有带抽屉的带有片段的导航抽屉项目,其中有5个菜单,问题是当我转到菜单4时,我按了后退按钮,应用程序关闭了,但是我需要将应用程序返回到第一个菜单,这是片段中的所有菜单。
这是主要活动(导航抽屉)的代码
public class MainActivity extends AppCompatActivity{
DrawerLayout mDrawerLayout;
NavigationView mNavigationView;
FragmentManager mFragmentManager;
FragmentTransaction mFragmentTransaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
*Setup the DrawerLayout and NavigationView
*/
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ;
/**
* Lets inflate the very first fragment
* Here , we are inflating the TabFragment as the first Fragment
*/
mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.containerView,new Recommendation()).commit();
/**
* Setup click events on the Navigation View Items.
*/
mNavigationView.setNavigationItemSelectedListener(new …Run Code Online (Sandbox Code Playgroud) 我有一个Angular 4应用程序,使用@ angular / router中的Router进行导航
导航结构非常简单,包括:
/products
/products/:productId
/products/:productId/edit-details
/products/:productId/edit-images
etc
Run Code Online (Sandbox Code Playgroud)
路由器模块都可以正常工作。
在以下情况下,保存数据后出现的“浏览器后退”按钮是我遇到的问题:
完成上述操作后,用户单击“浏览器后退”按钮。我认为大多数用户都希望“后退”按钮将其带入“产品列表”级别,但实际上会将其带回“ / products / 5 / edit-details”屏幕,因为这是他们使用的最后一条路线。
这可能是网站与单页应用程序中预期行为之间的冲突。SPA中的外观比传统网站更像是App。在大多数应用程序中,设备的后退按钮用作“上/后退”按钮(例如,在使用您获得的“联系人”应用程序的手机上:联系人列表->联系人详细信息->编辑联系人->保存[带您联系详细信息]->按“后退”按钮可将用户带到“联系人列表”,而不是返回“编辑联系人”屏幕,因此,该用户已受过教育,可以从设备上的“后退”按钮期待这种行为。
我已经尝试过使用:
this.location.back();
Run Code Online (Sandbox Code Playgroud)
代替
this.router.navigate(['../'], { relativeTo: this.route });
Run Code Online (Sandbox Code Playgroud)
用户单击保存后
这确实部分实现了我想要的功能,但是这为“转发”按钮留下了一个不必要的选项-绕过路由器模块似乎也有些错误。
删除后,此行为尤其令人讨厌:例如,如果转到“ / products /:productId / edit-images /:imageId”并删除图像,则不存在的路由将保留在“返回”历史记录中
我也尝试过使用“ skipLocationChange”,但是并没有达到预期的效果,就好像我在Link中使用skipLocationChange进入“ edit-details”屏幕一样,然后用户按下“后退”按钮然后绕过了: productId屏幕,然后直接转到“ / products”列表
有什么建议么?
back-button ×10
android ×3
angular ×1
history ×1
html-post ×1
iframe ×1
jquery ×1
jsf ×1
nativescript ×1
objective-c ×1
popstate ×1
webview ×1
xcode ×1