首页 > 代码库 > 页面链接跳转历史URL不记录的兼容处理
页面链接跳转历史URL不记录的兼容处理
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 =http://www.mamicode.com/ 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不记录的兼容处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。