Javascript 在不删除内容的情况下添加/编辑网页的URL栏';已经有了。
我需要向URL栏添加一些文本,而不删除已经存在的内容(正如我在标题中提到的)。基本上,我有八个左右的散列(/one/,/two/,/three/,等等) 我必须将这些添加到URL栏中,而不删除前面已经存在的哈希。例如,我可以有一个按钮将“/two/”添加到URL中,但如果“/one/”已经存在,该怎么办?我需要它使它只在一个之后添加新的散列,就像这样-“/one/two/three/” 我试过使用Javascript 在不删除内容的情况下添加/编辑网页的URL栏';已经有了。,javascript,php,html,url,Javascript,Php,Html,Url,我需要向URL栏添加一些文本,而不删除已经存在的内容(正如我在标题中提到的)。基本上,我有八个左右的散列(/one/,/two/,/three/,等等) 我必须将这些添加到URL栏中,而不删除前面已经存在的哈希。例如,我可以有一个按钮将“/two/”添加到URL中,但如果“/one/”已经存在,该怎么办?我需要它使它只在一个之后添加新的散列,就像这样-“/one/two/three/” 我试过使用 及 但不幸的是,当我在第一个之后使用第二个时,它只是将“/one/”替换为“/two/” 任何
及
但不幸的是,当我在第一个之后使用第二个时,它只是将“/one/”替换为“/two/”
任何建议都很好。如果需要提供更多的上下文,请告诉我,我不太确定代码中与此问题相关的内容
提前谢谢你们,伙计们 您只需要使用一个函数
<a onclick="addHash('/one/');">One</a>
<a onclick="addHash('/two/');">Two</a>
function addHash( hash ) {
window.location.hash = window.location.hash + hash;
}
1
两个
函数addHash(hash){
window.location.hash=window.location.hash+hash;
}
您可能需要在addHash函数中进行一些检查,以查看它是否已经存在,但这是一个很好的起点。也许需要对您在这里尝试实现的功能进行更多的描述? 您只是尝试URL的外观,还是尝试导航到具有这些参数的页面 我相信PHP会用以下方法解决这个问题,但我不确定您为什么要使用它
<a href="<?=$_SERVER['SCRIPT_NAME']?>/one">One</a>
<a href="<?=$_SERVER['SCRIPT_NAME']?>/two">Two</a>
如果使用jQuery,可以执行以下操作:
<a href="/one" class="addToUrl">One</a>
<a href="/two" class="addToUrl">Two</a>
<script>
$(function(){
$('.addToUrl').click(function(){
var href = $(this).attr('href');
window.location.href = window.location.pathname + href;
});
});
</script>
$(函数(){
$('.addtour')。单击(函数(){
var href=$(this.attr('href');
window.location.href=window.location.pathname+href;
});
});
这就是应该发生的事情,特别是当您使用“本地绝对”路径(/…
)时。很好的答案,正是我想要的。谢谢你的直截了当的解决方案!您需要删除尾随斜杠或前导斜杠。否则它将导致#/one//one//one//one//one/是的,我必须学会这条艰难的道路(不是那么难,哈哈)@萨莫萨,我有个问题。要工作,URL的结尾必须有“#散列”,对吗?但他们可能不会先点击“一”按钮,所以我不能让他们点击一个按钮时,会在URL中添加“#hash”。JavaScript中是否有方法检查URL中的“#散列”,如果不存在,则添加它?谢谢。我不知道你所说的“要工作,URL必须在结尾有”#hash“是什么意思。当您通过window.location.hash设置哈希时,它将检查哈希是否存在,如果不存在,它将添加,然后添加哈希部分。