页面链接跳转历史URL不记录的兼容处理
2017-08-07 14:22
966 查看
1.阻止跳转a标签的链接
2.location.replace(href) 不生成新的历史记录, 但有bug
3.首先通过HTML5 history.replaceState()方法把当前URL地址替换成以个井号#结尾的目前链接地址;
4.执行location.replace('')刷新当前地址(此时#会忽略);
(function(){ var fnUrlReplace = function (eleLink) { if (!eleLink) { return; } var href = eleLink.href; if (href && /^#|javasc/.test(href) === false) { if (history.replaceState) { // 生成新的URL history.replaceState(null, document.title, href.split('#')[0] + '#'); location.replace(''); // 刷新当前页面URL } else { location.replace(href); // 不生成新的历史记录 } } }; document.getElementsByTagName('a')[0].onclick = function (event) { // 阻止跳转 if (event && event.preventDefault) { event.preventDefault(); } fnUrlReplace(this); return false; }; }());
参考: http://www.zhangxinxu.com/wordpress/2017/02/page-link-url-history-null-not-record/
相关文章推荐
- 页面链接跳转历史URL不记录的兼容处理
- 【ionic+angulajs】ion-tabs访问页面url不记录历史的方法(修改浏览器记录的历史url,改变goback的跳转)
- dedecms织梦5.x中,在页面模板里直接使用跳转链接redirecturl而不是织梦链接arcurl的解决办法
- ASP.NET 使用response.redirect( "url ")跳转后,页面记录没刷新。
- android7.0 apk下载完成后跳转到apk安装页面闪退的兼容处理
- android7.0 apk下载完成后跳转到apk安装页面闪退的兼容处理
- nodejs处理页面跳转url地址的处理
- JS(javascript)跳转阻止后退到上个页面,没有历史记录
- url带参数链接,以及跳转页面接受参数
- 通过url中的hash(#)来记录页面状态,用以返回、跳转到特定状态
- jsp页面间跳转 url传递中文参数乱码 以及后续细节处理
- window.location.href='$_SERVER[HTTP_REFERER]'; 跳转处理前一个页面的url
- ios系统中各种设置项的url链接 ,实现跳转系统页面设置
- webview 笔记二(android和js交互、包括链接跳转常见问题处理,加载监视,拦截Url等)
- input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has
- 友盟分享到朋友圈时, 点击链接跳转到友盟自家页面的处理
- 将参数放在URL中(点击列表中的某条记录携带信息进行页面跳转)
- drupal网站搬家之后点击链接跳转页面错误