公众号开发
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()