公众号开发

1.返回按钮

pushHistory_replace()/pushHistory_push(),两个方法分别为replaceState/pushState.
相关文档在MDN上可以查阅到,都是修改浏览器历史记录的,一个是修改最近一条,一个是插入一条.
function pushHistory_replace() { 
    var state = { 
        title: "crf", 
        url: "#" 
    }; 
    window.history.replaceState(state, "title", "#"); 
}

function pushHistory_push() { 
    var state = { 
        title: "crf", 
        url: "#xjd" 
    }; 
    window.history.pushState(state, "title", "#xjd"); 
}
// 以上两个方法在进入到页面之后都执行了,先改变当前页面的hash,再Push一条.
// 2个hash值不同,这样在用户点击返回的时候,会返回到push进去的链接,当然,这次跳转改变的只有hash值
// 此时会触发hashchanged事件,注意有兼容写法.在hashchanged里面可以写上用户点击返回要加上的代码,譬如closeWindow=()
function hashchange_self(){ var newHash = window.location.hash; if ( newHash != window.oldHash ) { // 如果hash变化了 window.oldHash = newHash; /* * mqq.closeWindow(); * wx.closeWindow(); */ alert("window closed 1st") } } function setHashchange(){ pushHistory_replace(); pushHistory_push(); // 设置hash,push记录 if( "onhashchange" in window ){ // 如果浏览器支持onhashchange window.addEventListener("hashchange", function(){ /* * mqq.closeWindow(); * wx..closeWindow(); */ alert("window closed 2nd") }); }else{ //如果不支持hashchange,每0.1秒对比一次 window.oldHash = window.location.hash; window.hashchange_self = hashchange_self; setInterval("hashchange_self()", 100); } } setHashchange()
原文地址:https://www.cnblogs.com/nemoro1928/p/6233665.html