将JS函数的url返回传递给href

时间:2017-02-02 12:55:08

标签: javascript html url

我还是JS和HTML5的新手

所以我有一个存储在var

中的URL
var 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;}

1 个答案:

答案 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