我的网页在加载页面时运行javascript函数.但是,如果用户使用后退按钮返回此页面,我不希望该功能运行.如何使用javascript来防止这种情况?
$(document).ready(function(){
// Do not run this function if the user has arrived here using the back button
RefreshThePage();
});
Run Code Online (Sandbox Code Playgroud) 我有一个onKeyDown事件只需要处理我的应用程序中的Up和Down硬件键.对于这些,它返回true,因为它们被处理.对于其他任何东西,它返回false,我理解这意味着操作系统应该处理它们.但是,当我按下后退按钮时,我onKeyDown被调用并返回false,但没有其他效果.我希望/希望操作系统完成当前操作Activity并恢复前一个操作系统.
这是正确的行为,还是有什么东西?
更新:
干杯伙计们,我的onKeyDown例程看起来像这样,现在我遵循了CommonsWare的建议:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
boolean handled = true;
// handle key presses
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
mCursorX = mCursorX - 1;
if (mCursorX < MAP_MIN_X) { mCursorX = MAP_MIN_X; }
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
mCursorX = mCursorX + 1;
if (mCursorX > MAP_MAX_X) { mCursorX = MAP_MAX_X; }
break;
default:
handled = false;
if (handled) {
redrawCursorno();
return true;
}
return super.onKeyDown(keyCode,event);
}
Run Code Online (Sandbox Code Playgroud)
我的班级看起来像: …
我有一个需要登录的网页.一旦用户登录,我就开始会话,一旦他退出我销毁它,但当我按下后页时,它再次给我用户个人资料页面,理想情况下不应该是用户已经注销的情况.但是,如果我在注销后重新加载页面,它可以正常工作.
这是一个当地的聊天室,每个在线和登录的人都可以在一起聊天.有三个页面:login.php,auth.php,logout.php
login.php是包含表单的常见登录页面.auth.php有一个div显示所有以前的聊天记录,不外现,其形式再次发送上单击文本框和分享按钮auth.php所以每次的形式公布在chatpost被发送到数据库,并权威性重新装入聊天中最新的数据库格..
现在的问题是,一旦我退出,我取消设置所有变量并销毁会话,但即使这样,如果我点击浏览器(Safari)中的后退按钮,auth.php可以看到没有最后一个聊天条目的先前版本,理想情况下不应该会话,因为会话是销毁.我已经进行了会话验证auth.php,所以基本上我希望auth.php重新加载用户在注销后访问它,因为重新加载auth.php显示"你还没有登录"
我试过了
<?php header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
and
<head>
<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Expires' content='-1'>
</head>
Run Code Online (Sandbox Code Playgroud)
抱歉这个冗长的问题,但我真的需要帮助.
我不能为我的生活弄清楚如何在按下后退按钮后刷新活动.我目前有活动A触发意图转到B,而在行动B,如果你按回我想要回到行动A但让它刷新自己.我可以使用此意图来刷新当前的活动:
Intent refresh = new Intent(this, Favorites.class);
startActivity(refresh);
this.finish();
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何正确使用onResume()函数来恢复我的行为A.
我能描述问题的最好方法是这样的:
BroadcastReceiver).我该如何防止最后一步?我想要的后退按钮是回到原来的位置,这是主屏幕(包含所有小部件和应用程序图标的桌面).我的应用程序的主要活动应该是在后台运行,为什么用后退按钮调用它?
如果相关,我创建通知的代码如下:
public void createNotification(int notifyId, int iconId, String contentTitle, String contentText) {
Intent intent = new Intent(mContext, NewNoteActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(AgendaNotesAdapter.KEY_ROW_ID, (long)notifyId);
PendingIntent contentIntent = PendingIntent.getActivity(mContext, notifyId, intent, 0);
Notification notification = new Notification(iconId, contentTitle, 0);
notification.setLatestEventInfo(mContext, contentTitle, contentText, contentIntent);
mNotificationManager.notify(notifyId, notification);
Run Code Online (Sandbox Code Playgroud)
我试图添加几个标志组合,intent但他们都没有解决我的问题...建议?
notifications android back-button android-intent android-pendingintent
在标准的Java/SpringMVC/JSP/jQuery web-app中,我试图检测"Back"(或history.go(-1))事件,以便刷新(AJAX)摘要组件/面板内容时我返回到一个页面(我们可以在其中更改摘要组件显示的后端数据).
我在JavaScript中尝试了以下内容(关于StackExchange上的一些帖子,重新如何实现这一点):
<script type="text/javascript">
$(document).ready(function() {
window.onpageshow = function(event) {
console.log("Event:");
console.dir(event);
if (event.persisted) {
alert("non-jQuery - back to page - loaded from bfcache");
} else {
alert("non-jQuery - loaded page from server");
}
};
$(window).on("pageshow", function(event){
console.log("Event:");
console.dir(event);
if (event.originalEvent.persisted) {
alert("jquery - back to page - loaded from bfcache");
} else {
alert("jquery - loaded page from server");
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我正在运行OpenSUSE Linux并尝试使用FireFox和Chrome(最新版本),但每次将事件的persisted属性设置为false(我可以在JavaScript控制台中看到这一点,以及从上面的代码弹出的警报).每次,我的意思是,无论是从服务器加载还是通过后退按钮(或"后退"链接)再次显示.
我的目的是进行AJAX调用,如果通过"后退"按钮或history.go(-1)调用显示页面,则使用服务器的更新数据重新加载摘要组件/面板.
我也试过设置一个卸载处理程序(什么也不做),以防止页面被放入bfcache,但它似乎仍然显示bf-cached版本,并且event.persisted(或event.originalEvent.persisted)设置为false …
我通过扩展为我的应用创建了一个自定义视图RelativeLayout.dialog通过拖动来打开它ImageView.它有EditTexts和Buttons.onKeyDown 因为我需要从这个视图中截取后退按钮,所以我在我的视图中重写.如果自定义视图可见,则edittext未获得焦点,如果按下后退按钮,则视图将被取消,这是所需的.
出现问题,当edittext获得焦点,键盘可见时,按下后退按钮,软键盘被解除,但如果我再次按下后退按钮,然后super.onKeyDown()调用而不是解除自定义视图,我退出我的应用程序,其中所需功能是在解除软键盘后关闭视图.我究竟做错了什么?
以下是我的自定义视图代码:
public class AddTransactionView extends RelativeLayout implements View.OnClickListener {
private final String TAG = "AddTransactionView";
private Context context;
private ViewGroup parentView;
private FriendsDAO mFriendsDAO;
private AppPreference mAppPreference;
private ImageLoader imageLoader;
private DisplayImageOptions options;
private CircularImageView friendsImage;
private Button btnIOwe, btnTheyOwe;
private EditText edtTransactionDesc, edtTransactionAmt;
private RelativeLayout relAddTransaction;
private int status;
public AddTransactionView(Context context, View anchorView, int marginTop,
ViewGroup parentView, FriendsDAO mFriendsDAO) {
super(context);
Log.e(TAG, …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚当从选项卡式视图导航到单个页面视图时如何显示后退按钮.单页面视图不应该有标签栏.我可以在制作视图时显示后退按钮我正在导航到选项卡层次结构的一部分,但这不是我想要的.
我一直在环顾四周,似乎无法找到关于这个问题的帖子.我可能不会搜索正确的关键字.
我的设置就是这个......
tabs:tab.feed,tab.friends,tab.account
其他观点:randompage
这是我的路线设置......
.state('randompage', {
url:'/randompage',
templateUrl: 'templates/randompage.html',
controller: 'RandomPageCtrl'
})
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'templates/tabs.html',
controller: 'TabCtrl'
})
.state('tab.feed', {
url: '/feed',
views: {
'tab-feed': {
templateUrl: 'templates/tab-feed.html',
controller: 'FeedCtrl'
}
}
})
Run Code Online (Sandbox Code Playgroud)
这是tabs.html
<ion-tabs class="tabs-icon-top tabs-top">
<!-- Feed Tab -->
<ion-tab title="Feed" icon="icon ion-ios7-paper" href="#/tab/feed">
<ion-nav-view name="tab-feed"></ion-nav-view>
</ion-tab>
<!-- The rest are just from the tab skeleton -->
<ion-tab title="Friends" icon="icon ion-heart" href="#/tab/friends">
<ion-nav-view name="tab-friends"></ion-nav-view>
</ion-tab>
<ion-tab title="Account" icon="icon ion-gear-b" href="#/tab/account">
<ion-nav-view …Run Code Online (Sandbox Code Playgroud) 所以基本上我正在开发一个应用程序(iOS 9)并设置Associated Domains允许在用户点击我的应用程序的链接时直接打开应用程序.
点击链接并打开我的应用后,状态栏上会出现一个新的后退按钮,允许用户返回上一个应用,如下所示:

我正在使用以下方法捕获此操作(通过链接启动):
- (BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler
{
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webURL = userActivity.webpageURL;
NSLog(@"%@", webURL.absoluteString);
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法访问此信息(以前的应用程序,在这种情况下的消息)NSUserActivity或类似的东西?
我的应用程序在每个屏幕上都有相当多的按钮以及UIBarButtonItem后退按钮,我遇到了人们能够多点击按钮的问题.我一次只需要一个按钮就可以点击.
有谁知道如何使UIBarButtonItem后退按钮专用于触摸?
我设法通过将每个视图设置为isExclusiveTouch = true来禁用多次单击UIButton,但这似乎不计入导航栏中的后退按钮.
后退按钮似乎不符合isExclusiveTouch.
有没有人有一个简单的工作,不涉及编码每个按钮发送事件?
非常感谢,
Krivvenz.
back-button ×10
android ×4
javascript ×2
angularjs ×1
caching ×1
cordova ×1
deep-linking ×1
ios ×1
ios9 ×1
lifecycle ×1
multi-touch ×1
onresume ×1
pageshow ×1
php ×1
swift ×1
tabs ×1
uibutton ×1
view ×1