使用History_API创建深度链接
Creating deep links with History_API
我正在尝试拉深链接。我找到了一个教程,并试图实现它。下面是我的History_API与jQuery/Ajax加载器:
$('.hor_menu').click(function() {
var url = $(this).attr('href');
$.ajax({
url: url + '?ajax=1',
success: function(data) {
$('#destination').html(data);
}
});
因此,如果单击.hor_menu
类的任何div
按钮,Ajax将其内容加载到#destination
块。
使用以下命令更改链接:
if (url != window.location) {
window.history.pushState(null, null, url);
}
return false;
});
要激活后退/前进按钮,我使用:
$(window).bind('popstate', function() {
$.ajax({
url: location.pathname + '?ajax=1',
success: function(data) {
$('#destination').html(data);
}
});
});
示例div
按钮:
<div class="hor_menu" id="b5" href="/pages/about.htm" onclick="
('main_hor_menu')"><strong>About us</strong></div>
整个工作正常:更改链接,将请求加载到目的地。当我点击后退/前进浏览器只重新加载内容,因为它应该。唯一的问题是,我没有实现深度链接:在任何状态下,按F5重新加载所请求的页面,而不是它的内容到#destination
块。显然,我不能直接链接到任何页面。
如果没有router组件(比如backbone的或ember的),这种有状态的客户端应用是很难实现的。我建议你找一个你喜欢的,然后使用它,而不是自己建一个路由器。
同时,确保你的服务器路由器映射pages/**
(或任何相关的)到你的html文件
相关文章:
- 简单的移动重定向/深度链接实施
- 在 Apache 中使用 ngRoute 进行角度路由深度链接
- 使用URL锚点深度链接相册,无需劫持后退按钮
- AngularJS中的多层深度链接
- 当模型在Angular中更改时,自动更新深度链接的url
- 如何为应用深度链接创建超链接文本
- Facebook分享深度链接 - Javascript
- 如何在网站中进行深度链接
- 应用程序关闭时,用于深度链接的LinkingIOS.addEventListener不起作用
- history.js可以在没有哈希或的情况下进行URL深度链接吗?性格
- Angular's深度链接-动态链接与静态链接
- 深度链接在Facebook/Messenger中打开时未打开本机应用程序(在其他应用程序中工作…)
- FancyBox/Popup深度链接
- 从深度链接的开头删除/#/
- 从外部到Ember应用程序的深度链接
- HTML5/jQuery:pushState和popState-深度链接
- Node Express服务器深度链接不支持AngularJS的html5Mode
- 如何将深度链接添加到HTML5 Up模板中?
- Angular ng-repeat不支持深度链接
- Android -深度链接并不是在所有情况下和所有浏览器上都能工作