大型门户网站开发/seo是做什么工作内容
由于表单提交之后移动端返回仍会返回表单提交页面,为解决此问题搜寻以下暂定五种解决方式,以减少搜寻时间,但不能保证每种方式都生效,会因html内容不同效果不同,可逐一测试。
第一种方式《pageshow》
方法一
window.addEventListener('pageshow', function(evt){setTimeout(function(){if(evt.persisted){location.reload(true); // 返回时跳转的链接地址}});});
方法二
window.onpageshow = function(e){if(e.persisted || (window.performance && window.performance.navigation.type == 2)){window.location.href = "../../index.html"; // 返回时跳转的链接地址}}
performance.navigation.type(该属性返回一个整数值,表示网页的加载来源,可能有以下4种情况):
0:网页通过点击链接、地址栏输入、表单提交、脚本操作等方式加载,
相当于常数performance.navigation.TYPE_NAVIGATE。
1:网页通过“重新加载”按钮或者location.reload()方法加载,
相当于常数performance.navigation.TYPE_RELOAD。
2:网页通过“前进”或“后退”按钮加载,
相当于常数performance.navigation.TYPE_BACK_FORWARD。
255:任何其他来源的加载,
相当于常数performance.navigation.TYPE_RESERVED。
performance.navigation.redirectCount:表示网页经过重定向的次数。
第二种方式《popstate》
方法一
window.addEventListener("popstate",function(e){window.location.href = "index.html"},false)
方法二
window.onpopstate = function (e) {// 这里进行业务逻辑的处理location.href = '../../index.html'}
第三种方式《pageshow+pagehide》
//解决手机物理按键返回不刷新页面的问题------------var isPageHide = false;window.addEventListener('pageshow', function (event) {var TYPE_NAVIGATE = 0, // 当前页面是通过点击链接,书签和表单提交,或者脚本操作,或者在url中直接输入地址,type值为0TYPE_RELOAD = 1, // 点击刷新页面按钮或者通过Location.reload()方法显示的页面,type值为1TYPE_BACK_FORWARD = 2, // 页面通过历史记录和前进后退访问时。type值为2TYPE_RESERVED = 255; // 任何其他方式,type值为255//event.persisted属性为true时,表示当前文档是从往返缓存中获取if (isPageHide || event.persisted || (window.performance && window.performance.navigation.type == TYPE_BACK_FORWARD)) {location.reload();}});window.addEventListener('pagehide', function () {isPageHide = true;});
第四种方式《hash》
// 控制手机物理键--返回window.onload = function(){if(window.history && window.history.pushState) { $(window).on('popstate', function() { var hashLocation = location.hash; var hashSplit = hashLocation.split("#!/"); var hashName = hashSplit[1]; if(hashName !== '') { var hash = window.location.hash; if(hash === '') { alert("你点击了返回键"); //location.href ='/xcview/html/apprentice/inherited_introduction.html' /*跳转链接*/} } }); window.history.pushState('forward', null, './#forward'); //引号里写当前页面地址,刷新当前页'./inherited_introduction.html'}};
第五种方式《onreadystatechange 》
// 本地测试无效果,不排除本地代码原因,可死马当活马医试一次document.onreadystatechange = function () { if(document.readyState=="complete") { window.location.href = "../../index.html"} }
文章来源地址(由于搜寻网址过多,仅找到部分网址)
performance.navigation.type详解----张小中的博客园
解决手机物理按键返回不刷新页面的问题----走看看
控制获取监听安卓手机物理返回键的事件----段龙龙的博客