Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不删除内容的情况下添加/编辑网页的URL栏';已经有了。_Javascript_Php_Html_Url - Fatal编程技术网

Javascript 在不删除内容的情况下添加/编辑网页的URL栏';已经有了。

Javascript 在不删除内容的情况下添加/编辑网页的URL栏';已经有了。,javascript,php,html,url,Javascript,Php,Html,Url,我需要向URL栏添加一些文本,而不删除已经存在的内容(正如我在标题中提到的)。基本上,我有八个左右的散列(/one/,/two/,/three/,等等) 我必须将这些添加到URL栏中,而不删除前面已经存在的哈希。例如,我可以有一个按钮将“/two/”添加到URL中,但如果“/one/”已经存在,该怎么办?我需要它使它只在一个之后添加新的散列,就像这样-“/one/two/three/” 我试过使用 及 但不幸的是,当我在第一个之后使用第二个时,它只是将“/one/”替换为“/two/” 任何

我需要向URL栏添加一些文本,而不删除已经存在的内容(正如我在标题中提到的)。基本上,我有八个左右的散列(/one/,/two/,/three/,等等)

我必须将这些添加到URL栏中,而不删除前面已经存在的哈希。例如,我可以有一个按钮将“/two/”添加到URL中,但如果“/one/”已经存在,该怎么办?我需要它使它只在一个之后添加新的散列,就像这样-“/one/two/three/”

我试过使用



但不幸的是,当我在第一个之后使用第二个时,它只是将“/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设置哈希时,它将检查哈希是否存在,如果不存在,它将添加,然后添加哈希部分。