我试图提取部分网址,并使用javascript将其替换为自定义文本。
例如,我想获取当前URL,如:mydomain.com/url_part_to_change/some-other-stuff
然后更改要插入的URL,使新的新URL为:mydomain.com/new_url_part/some-other-stuff
这是我的:
function changeURL() {
var theURL = window.location.pathname;
theURL.replace("/url_part_to_change/", "/new_url_part/");
//Set URL
}
然而,当我尝试调用函数changeURL()
时,它返回undefined
而不是新的url。
例如,如果我这样做:
alert(changeURL());
那么警报是undefined
8条答案
按热度按时间fslejnso1#
TL;DR
进一步说明:
Window.location(下面附上的图片)提供了一个包含所有uri部分信息的对象。因此,您可以通过
window.location
获取此对象并访问属性pathname
,然后执行操作。例如:其他示例:
或者,使用
location.href
设置新的url。有关location.assign()
、location.replace()
、location.reload()
的示例以及有关不同可用函数的注解,请查看MDN documentation控制台中的一个window.location对象
有三个参考资料可以进一步理解URI组件
希望这能帮上忙。
ntjbwcob2#
这应该对您正确地工作:
dw1jzc5e3#
你在函数中没有返回任何东西,请使函数像
doinxwow4#
就像其他人说的,你什么都不回。他们忘记的是String.replace()只是复制了
theURL
,并没有改变theURL
。试试这个:
xa9qqrwz5#
bvk5enib6#
你忘了
return
iyfamqjs7#
这是一个很老的帖子,但只是为了补充:
修改window.location会导致页面导航,所以如果不需要,可以创建一个新的URL对象,然后可以根据需要修改部分。
在我的例子中,我需要将路径从QueryString中的值更改为值。
例如。
wko9yo5t8#
URL Constructor可能是这项工作的最佳工具。