我今天正在浏览GitHub,并注意到个人存储库导航在URL /#中没有使用hash-bangs!或/#后退按钮仍然有效.您认为他们是如何实现这一目标的?这对Googlebot的搜索引擎抓取有何影响?我知道它在网址中寻找#.
我真的很好奇,因为我知道使用/#是值得商榷的.
这是一个例子:https://github.com/mirah/pindah
谢谢!
我有一个具有挑战性的问题,我一直在争夺一段时间.
问题:当我使用浏览器的后退按钮返回上一页时,在播放完所有动画后,页面将以最终状态显示.我希望它以初始状态显示并重放动画.
我的网站使用了一些基本的jQuery动画.每个页面的初始状态都隐藏在浏览器窗口下边缘下方的主要内容中.当窗口加载时,主要内容会动画显示在浏览器中.当访问者单击任何菜单链接时,主内容会再次卷起并消失在浏览器窗口的上边缘之上 - 然后加载新页面.使用这两段代码完成整个过程:
//Animate the content up from below the browser window
$('#maincontent').animate({top: "15%"}, 2000);
Run Code Online (Sandbox Code Playgroud)
和
//Animate the content up to hide above the browser window
$('#menu a').click(function(event) {
event.preventDefault();
var href = this.href;
$('#maincontent').animate({
top: '-300%'
}, 500,
function() {
window.location = href;
});
});
Run Code Online (Sandbox Code Playgroud)
问题:当单击浏览器后退按钮时,如何使页面显示为初始状态?
我浏览了StackOverflow一段时间了.人们对这个问题进行了很多讨论,但似乎没有人能找到真正有效的解决方案.建议包括阻止页面被缓存 - (不起作用,即使它起作用,也不会很有效率,因为某些页面确实需要缓存) - 重新加载页面(导致一些特殊的行为,最终没有'工作,或者) - 使用cookie(没有给出任何代码的具体示例)或使用PHP(没有任何具体的代码示例在任何地方给出).我在这个网站上询问了几个问题,并收到了一些建议,但没有一个在我的情况下有效.所以经过几个不眠之夜,我想问一下是否有人可以真正帮助解决这个问题.
如果有人在成功之前处理了这个问题,如果您能分享您的专业知识并建议可行的解决方案,我将不胜感激!
新编辑:我想我可能已经找到了解决方案,但我希望有人帮助使用jQuery/JavaScript语法.我想尝试修改代码以向其添加一个操作,但我不确定如何编写它,以便页面在位置更改为新页面之前重新加载所以而不是显示的第二个代码段上面,我想写这样的东西:
//Animate the content up to hide above the browser window
$('#menu a').click(function(event) {
event.preventDefault();
var href = this.href;
$('#maincontent').animate({ …Run Code Online (Sandbox Code Playgroud) 使用Javascript或AngularJS控制或禁用浏览器后退按钮
在这里我不是问一个问题,但我想展示如何使用AngularJS或甚至使用Javascript来禁用和控制浏览器的后退按钮的解决方案
有没有办法访问历史记录,以便我知道用户点击后退按钮(调用WebView.goBack())时访问的URL?
我正在试图弄清楚如何创建一个允许用户返回一页的后退按钮.我阅读了Apple的文档(这仍然在我的脑海中),并发现我需要设置canGoBack和goBack.我试过这个,但由于某种原因它没有用.我UIWebView被命名viewWeb,我创建了一个插座并将其连接到我的后退按钮,命名为backButton,并将其标记为1.这是我在View Controller中编写的代码:
// Back button:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
[_backButton addTarget:_viewWeb
action:@selector(goBack)
forControlEvents:UIControlEventTouchDown];
if ([_viewWeb canGoBack]) {
NSLog(@"Back button pressed.");
[_viewWeb goBack];
}
}
else return;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道我需要更改/添加以使其工作?
我正在建立一个新闻网站,其中包含经常更新的动态内容(每天多次).在Windows Phone 7.5 IE 9.0 Mobile中报告此错误的用户数量:
预期结果:
单击后退按钮后,用户会在导航到文章页面之前看到首页,确切地看到她看到的内容.
实际结果:
用户看到一个非常旧的(一周左右)版本的首页.
有没有其他人在Mobile Internet Explorer 9中看到过这个bug?我怎么能防止这种情况发生?
更多细节:
我在我的应用程序中使用导航抽屉使用Android滑动菜单,而在应用程序中使用碎片而不是活动.当我打开抽屉时,单击片段出现的项目.我使用以下代码从一个片段移动到另一个片段:
Fragment fragment = null;
fragment = new GalleryFragment(selectetdMainMenu.getCategoryID());
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.addToBackStack("menuFrag");
ft.add(R.id.frame_container, fragment, "menuFrag");
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以从一个片段转到另一个片段但是我无法按下后退按钮上的前一个片段.我设法提出这个代码来处理MainActivity中的反压,其中Drawer初始化:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
if (keyCode == KeyEvent.KEYCODE_BACK) {
Fragment fragment_byTag = fragmentManager.findFragmentByTag("menuFrag");
Fragment menuFragment_by_tag = fragmentManager.findFragmentByTag("galleryFrag");
Fragment commentsFrag_by_tag = fragmentManager.findFragmentByTag("commentsFrag");
Fragment dealDetail = fragmentManager.findFragmentByTag("promoFrag");
if(commentsFrag_by_tag != null){
if (commentsFrag_by_tag.isVisible()) {
Log.e("comments back ", " clicked");
//menuDetailsFrag.onBackPressed();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().remove(commentsFrag_by_tag).commit();
fragmentManager.beginTransaction().show(menuFragment_by_tag).commit();
}
}else if(menuFragment_by_tag.isVisible()){
Log.e("menu back ", " clicked");
menuDetailsFrag.onBackPressed();
FragmentManager fragmentManager …Run Code Online (Sandbox Code Playgroud) 我如何在颤动中实现从左侧滑动以返回手势?不确定它是否已经为 iOS 自动实现,但我也希望它用于 Android(因为事情变得基于手势)。
请给我反馈是否在活动中有一个后退按钮是好的做法,还是只是废话?也许有些Android手机没有后退/返回键?或者所有型号都有它们吗?

我正在使用有角度的ui路由器进行我的前端路由,我似乎无法通过浏览器的后退按钮将我带到最新的URL.
让我来证明一下.
让我们说我从这里开始
/#/myapp/
Run Code Online (Sandbox Code Playgroud)
经过一些点击后,我动态调整了我的网址
/#/myapp/12345
Run Code Online (Sandbox Code Playgroud)
假设我在页面上保留时单击一个日期选择器
/#/myapp/12345?start=2016-01-21&end=2016-01-28
Run Code Online (Sandbox Code Playgroud)
我可以通过使用$ scope'd函数与$ location.url一起完成此操作
真棒.到现在为止还挺好.
假设我通过点击导航远离此
<a href="#"> My App </a>
Run Code Online (Sandbox Code Playgroud)
其中,由于我设置路由的方式
myApp.config([
'$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider.state('myapp',
url : '/myapp/*id?start&end',
templateUrl : '<path to my template>',
controller : '<name of my controller>'
);
// more routes
$urlRouterProvider.otherwise('/myapp/');
}
]);
Run Code Online (Sandbox Code Playgroud)
将默认返回初始状态
/#/myapp
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止,还是那么好.但是,当我点击浏览器的后退按钮时,我会被带回去
/#/myapp
Run Code Online (Sandbox Code Playgroud)
而不是我期望的
/#/myapp/12345?start=2016-01-21&end=2016-01-28
Run Code Online (Sandbox Code Playgroud)
我只能猜测我在浏览页面时生成的中间网址没有被浏览器的历史记录捕获...我认为这是合理的.如何让我的浏览器识别这些中间步骤,以便我可以正确回溯?
back ×10
android ×3
browser ×3
button ×3
angularjs ×2
animation ×1
dart ×1
flutter ×1
github ×1
hash ×1
ios ×1
javascript ×1
jquery ×1
navigation ×1
objective-c ×1
uiwebview ×1
url ×1
url-routing ×1
webview ×1