我有这样的URL:http://example.com#something如何删除#something,而不会导致页面刷新?
我尝试了以下解决方案:
window.location.hash = '';
Run Code Online (Sandbox Code Playgroud)
但是,这不会#从URL中删除哈希符号.
我如何使用可能对当前页面产生一些影响的JavaScript操作,但也会更改浏览器中的URL,以便在用户点击重新加载或书签时使用新URL?
如果后退按钮会重新加载原始URL也会很好.
我试图在URL中记录JavaScript状态.
我有以下代码:
$('ul.questions li a').click(function(event) {
$('.tab').hide();
$($(this).attr('href')).fadeIn('slow');
event.preventDefault();
window.location.hash = $(this).attr('href');
});
Run Code Online (Sandbox Code Playgroud)
这简单地根据您点击的时间淡化div,但我希望您点击时更改页面URL哈希标记,以便人们可以复制和添加书签.目前,当哈希标签发生变化时,这会有效地重新加载页面.
是否可以更改哈希标记而不重新加载页面以防止跳跃效应?
背景:我有一个HTML页面,可以让您扩展某些内容.由于只需要加载页面的一小部分进行此类扩展,因此通过JavaScript完成,而不是通过指向新的URL/HTML页面.然而,作为奖励,用户能够永久链接到这样的扩展部分,即向其他人发送诸如的URL
并为其他用户立即打开"foobar"类别.这使用parent.location.hash ='foobar',因此该部分很好.
现在的问题是:当用户在页面上关闭此类别时,我想再次清空URL片段,即将http://example.com/#foobar转到http://example.com/以更新永久链接显示.但是,这样做parent.location.hash = ''会导致重新加载整个页面(例如在Firefox 3中),我想避免这种情况.使用window.location.href = '/#'不会触发页面重新加载,但会在URL中留下一些看起来不太好看的"#"符号.那么在流行的浏览器中有没有一种方法可以删除包含"#"符号的URL锚点,而不会触发页面刷新?
我希望在使用哈希标记后将其从URL中删除.例如,当我点击下面的链接时:
<a href="#btnq1"><button type="button" name="" value="" id="btnq1">Just a button</button></a>
Run Code Online (Sandbox Code Playgroud)
我希望在此链接上的操作发生后立即删除页面URL中显示的哈希标记#btnq1.我尝试了下面的jquery代码没有成功:
$('#btnq1').click(function(event){
event.preventDefault();
// your action
});
Run Code Online (Sandbox Code Playgroud)
即使这有效,那么我如何实现它以适用于添加到URL的每个哈希标记?我想用javascript解决它.