有没有办法在不重新加载页面的情况下修改当前页面的URL?
如果可能的话,我想访问#hash 之前的部分.
我只需要在域之后更改部分,因此它不像我违反了跨域策略.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
Run Code Online (Sandbox Code Playgroud) 我正在使用Twitter Bootstrap及其"标签".
我有以下代码:
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#add">add</a></li>
<li><a data-toggle="tab" href="#edit" >edit</a></li>
<li><a data-toggle="tab" href="#delete" >delete</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
选项卡正常工作,但URL中没有添加#add,#edit,#delete.
当我删除data-toggleURL更改,但选项卡不起作用.
对此有何解决方案?
是否有可能删除哈希window.location而不会导致页面跳转到顶部?我需要能够修改哈希而不会引起任何跳转.
我有这个:
$('<a href="#123">').text('link').click(function(e) {
e.preventDefault();
window.location.hash = this.hash;
}).appendTo('body');
$('<a href="#">').text('unlink').click(function(e) {
e.preventDefault();
window.location.hash = '';
}).appendTo('body');
Run Code Online (Sandbox Code Playgroud)
在这里查看实例:http://jsbin.com/asobi
当用户单击" 链接 "时,修改的哈希标记没有任何页面跳转,因此工作正常.
但是当用户点击" 取消链接 "时,删除了has标记,页面滚动跳转到顶部.我需要删除没有这种副作用的哈希.
我是ajax-ifying在我的一个项目中的分页,因为我希望用户能够为当前页面添加书签,我通过哈希附加页码,说:
onclick="callPage(2); window.location.hash='p=2'; return false;"
Run Code Online (Sandbox Code Playgroud)
并且hyperlink它在它上面工作正常和一切,除了,当页码是1,我不想URL成为/products#p=1,我只是希望它是/products
我试过这些变化:
window.location.hash=''工作,但网址现在像/products#,我不是那里的哈希./products#p=3因为我没有弄乱哈希.<a href="#">,他应该使用javascript:void(0).(他们从未听说过Ajax吗?)所以最后,我决定制作这个帖子,我在这里发现了几个类似的线程,但所有的答案与我的第二点非常相似.
所以我的一个大问题仍然是一个问题:如何从网址中挖出哈希,并可能离开宇宙?(仅限第一页!)
背景:我有一个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锚点,而不会触发页面刷新?
我有这个简单的脚本:
$(document).ready(function(){
var $yoyo = window.location.hash;
alert($yoyo);
});
Run Code Online (Sandbox Code Playgroud)
但我需要摆脱#符号,因为我将使用变量来定位div ID.我尝试过使用.remove('#'),但这似乎不起作用.
提前谢谢了!
访问stackoverflow.com/#_=_并window.location.hash评估#_=_.精细.
现在执行window.location.hash = ''清除哈希,URL变为stackoverflow.com/#.(请注意尾随#.)
为什么#在window.location.hash不一致包含或排除?如何在#不重新加载页面的情况下从URL中删除?
(MDN说
[哈希]是#符号后面的URL的一部分,包括#符号.
但在空哈希的情况下,情况并非如此.)
在我的网站上我设置了网址地址
window.location.hash = 'project_name';
Run Code Online (Sandbox Code Playgroud)
但如果我想从任何哈希(当我关闭一个项目)清理地址网址,我设置
window.location.hash = '';
Run Code Online (Sandbox Code Playgroud)
它会在页面滚动到首页时发生
有没有办法清理网址没有任何副作用?
谢谢
我正在建立一个寻呼机网站.例如.每个页面(总共5个)位于一个大页面上,主菜单固定在顶部.当您单击菜单链接时,它会将您向下滑动到该页面锚标记,并且单击的菜单项将获得"活动"CSS类.
我现在要做的是允许用户滚动自己,但仍然有菜单"活动"项和URL哈希更改.
所以我的问题基本上是如何知道用户何时向下滚动到不同的页面,以便我可以更新菜单和URL哈希(片段标识符).
谢谢
嗨,我希望有人可以帮忙.我想隐藏地址栏中的片段标识符,而不是:
www.mydomain.com/example.html#something
我得到:
www.mydomain.com/example.html
当我点击一个锚标签.
我看了很多相关的问题和论坛,但仍然无法弄明白.我很确定我应该使用以下内容:
window.location.href.replace(/#.*/,''); //and or .hash
Run Code Online (Sandbox Code Playgroud)
放就是想不出来.
localScroll插件允许您隐藏或保留标识符,默认情况下它们是隐藏的.我认为很多画廊插件也有类似的选择.
但是当我尝试自己做的时候(一点新手)我发疯到没有结果.
下面是我希望它可以使用的一些基本示例脚本:
<style>
.wrap{
width:300px;
height:200px;
margin:auto;
}
.box{
width:300px;
height:200px;
position:absolute;
display:none;
}
#one{background:red;}
#two{background:blue;}
#three{background:green;}
.load{display:block;}
</style>
<body>
<ul>
<li><a href="#one">One</a></li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a></li>
</ul>
<div class="wrap">
<div id="one" class="box load">This is Box 1</div>
<div id="two" class="box">This is Box 2</div>
<div id="three" class="box">This is Box 3</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("ul li a").click(function(){
$("div.box").fadeOut(1000);
$($(this).attr('href')).fadeIn(1000);
});
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)