2016-09-12 100 views
3

我的要求是在单击刷新图标或ctrl + R时更改当前页面的URL。这是刷新,重新加载另一个页面(不同的URL)。它应该支持所有的浏览器。我已经尝试了下面的代码片段。但它不工作。更改使用javascript重新加载当前页面的URL

window.onbeforeunload = function(e) { 
    window.location.href = 'www.google.com'; 
}; 

其中'google.com'应该是我刷新当前页面的页面的URL。但是它并没有和window.onbeforeunload()一起发生。

+0

重复? http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page/3354511#3354511 – NoobishPro

+0

你真的在使用angularjs吗?因为对我来说,似乎只有JavaScript ... –

回答

1

由于@Babydead状态,这似乎是一个重复:

Modify the URL without reloading the page

但是,如果你正在寻找一个快速的解决方案,只是尝试:

window.location.replace("http://www.google.com"); 

不要忘记宣布协议“http”。

+0

我试过这个,它不工作。不确定这是如何与提供的重复相关的,因为OP希望这可以用于刷新。 –

+0

我的歉意我让你们都错了......现在我意识到你真正想要做的就是覆盖刷新,后退和前进按钮的常见行为....我恐怕这是不可能的,因为它假设对用户来说是一个安全漏洞......但是,我们可以以某种方式破解我们自己的开发...这里有一个解决方法的想法:1.在卸载之前使用是执行一些操作然后卸载......所以,我们可以do是设置一个全局参数或者什么都不做。 2.使用window.onload事件重定向到任何时候使用一些条件,或者使用window.bef读取全局参数预设 – parismiguel

3

OnBeforeUnload需要一个返回值才能工作,但实际上,它只会显示一条消息,询问用户他是否确定他想离开页面(就像Facebook尝试离开包含一些挂起更改的页面时一样)。

据我所知,网络浏览器不想让你控制,主要是因为网站在用户离开时重定向,所以没有什么比做“标准方式”它,即使你找到一个解决方法,我敢肯定,它不适用于所有的浏览器。 但是,为什么你的客户想要在他的网站上的行为?至少在我看来,他唯一会得到的是对他的最终用户来说可怕的用户体验。

相关问题