有没有一种方法可以在不重新加载页面的情况下修改当前页面的URL?
如果可能,我想访问#哈希之前的部分。
我只需要更改域之后的部分,所以我不会违反跨域策略。
window.location.href = "www.mysite.com/page2.php"; // this reloads
有没有一种方法可以在不重新加载页面的情况下修改当前页面的URL?
如果可能,我想访问#哈希之前的部分。
我只需要更改域之后的部分,所以我不会违反跨域策略。
window.location.href = "www.mysite.com/page2.php"; // this reloads
当前回答
只需使用,它不会重新加载页面,只会重新加载URL:
$('#form_name').attr('action', '/shop/index.htm').submit();
其他回答
您可以在应用程序的任何位置使用这个美丽而简单的功能。
function changeurl(url, title) {
var new_url = '/' + url;
window.history.pushState('data', title, new_url);
}
您不仅可以编辑URL,还可以同时更新标题。
您的新url。
let newUrlIS = window.location.origin + '/user/profile/management';
在某种意义上,调用pushState()类似于设置window.location=“#foo”,因为两者都会创建并激活与当前文档相关的另一个历史条目。但是pushState()有一些优点:
history.pushState({}, null, newUrlIS);
您可以签出根目录:https://developer.mozilla.org/en-US/docs/Web/API/History_API
可以添加定位标记。我在我的网站上使用这个,这样我就可以通过Google Analytics跟踪人们在页面上访问的内容。
我只是添加了一个锚标记,然后添加了我要跟踪的页面部分:
var trackCode = "/#" + urlencode($("myDiv").text());
window.location.href = "http://www.piano-chords.net" + trackCode;
pageTracker._trackPageview(trackCode);
在HTML5之前,我们可以使用:
parent.location.hash = "hello";
and:
window.location.replace("http:www.example.com");
此方法将重新加载页面,但HTML5引入了不应重新加载页面的history.pushState(page,caption,replace_url)。
注意:如果你使用的是HTML5浏览器,那么你应该忽略这个答案。从其他答案中可以看出,这现在是可能的。
在不重新加载页面的情况下,无法在浏览器中修改URL。URL表示最后加载的页面。如果您更改它(document.location),它将重新加载页面。
一个明显的原因是,你在www.mysite.com上写了一个看起来像银行登录页面的网站。然后你将浏览器的URL栏更改为www.mybank.com。用户将完全不知道他们真的在看www.mysite.com。