var href=location.href;
function defaulturl() {
history.replaceState(null,null,href);
location.hash='#';
}
function newurl() {
history.replaceState(null,null,location.protocol+'//'+location.host+location.pathname);
location.hash='#Have fun!';
}
function lostblur() {
window.onblur=function () {
setTimeout(defaulturl,10);
};
}
newurl();
lostblur();
window.onfocus=function () {
lostblur();
setTimeout(newurl,10);
};
window.oncontextmenu=function () {
window.onblur=null;
defaulturl();
};
window.onkeyup=function () {
if (event['keyCode'] == 116) {
window.onblur=null;
window.onfocus=null;
defaulturl();
}};
window.onbeforeunload=function () {
window.onblur=null;
window.onfocus=null;
defaulturl();
};
其中出问题的部分是:
window.onbeforeunload=function () {
window.onblur=null;
window.onfocus=null;
defaulturl();
};
这段代码在我的浏览器上看已经生效了,但是刷新的时候仍然是使用原来的 URL 导致页面不正确。 按 F5 则是生效的,之前研究并加了
window.onkeyup=function () {
if (event['keyCode'] == 116) {
window.onblur=null;
window.onfocus=null;
defaulturl();
}};
绑定F5后快捷键刷新才可用,但是点击刷新按钮仍不行。 兼容浏览器是IE9+ / Chrome / Firefox 希望用这段JS代码达到的效果是: 在页面范围内,且页面是焦点,将URL参数隐藏,并将锚点设为#Have fun!。 在非焦点(复制URL,收藏等) / 点击刷新按钮 / F5刷新页面 / 打开右键菜单(创建快捷方式 / 打印)时恢复原URL。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.