我还是JS和HTML5的新手
所以我有一个存储在var
中的URLvar Base_URL = "https://www.mywebsite.com/info?username";
链接到可以访问可包含空格的用户名值的数据库。
我将这个url解析为函数
function removeSpaceURL(url) {
var update = url.split(' ').join('%20');
return update;
}
这不是我所知道的最佳方式,但它的功能足够好。
我遇到的问题是,我想将更新返回到href引用中,以便点击它。
<p><a href="" onclick="removeSpaceURL(BASE_URL);return false;" >Survey</a></p>
<script>
var Base_URL = "https://www.mywebsite.com/info?username";
function removeSpaceURL(url) {
var update = url.split(' ').join('%20');
return update;}
</script>
当我在JSfiddle上尝试时,我收到以下错误:
{&#34;错误&#34;:&#34;请使用POST请求&#34;}
答案 0 :(得分:3)
正确的做法是让Base_URL
首先成为格式正确的网址,如果用户名部分中有空格,则不会这样做。
但假设您坚持使用它,在元素上设置属性非常简单:
<p><a id="target-link" href="">Survey</a></p>
<script>
var Base_URL = "https://www.mywebsite.com/info?username";
document.getElementById("target-link").setAttribute(
"href", encodeURI(Base_URL)
);
</script>
请注意suggested使用encodeURI
作为emiliopedrollo,而不是简单地替换空格。但是,如果URI的 parts 已经被正确编码并且只有用户名是问题,encodeURI
可能会对事物进行双重编码。所以如果你只想替换空格:
document.getElementById("target-link").setAttribute(
"href", Base_URL.replace(/ /g, "%20");
);
另请注意,return false
元素onclick
上的a
会阻止链接被关闭,因此我完全不使用onclick
。