如何通过 javascript 函数的 return 值生成 href link 的内容?

How to generate the content of an href link by the return value of a javascript function?

我有一个javascript函数:

function foo() { return "/a/b/SomeApi"; }

然后我的网页中有一个 href link。我希望这个 link 指向我的 javascript 函数返回的值,这样当用户单击 link 时,就好像用户单击了 link url /a/b/SomeApi.

我试过以下方法:

<a href="javascript:foo()">Click</a>

但这样做的结果是浏览器会打开一个新的 window 显示文字值 /a/b/SomeApi 而不是向服务器发送请求。

有什么建议吗?谢谢。

不返回字符串,而是用它设置当前页面的位置,像这样...

function foo() { document.location.href = "/a/b/SomeApi"; }

正如@haim770 所指出的那样 - 这些不是您正在寻找的机器人。

如果要专门设置 href 属性,则必须从 link 外部进行。首先你应该给你的 link 一个 id 属性,比如这个...

<a id="myAnchor">Click</a>

然后应将这段代码放在页面中 元素之后,或者作为 "document loaded" 代码段的一部分。

document.getElementById("myAnchor").href = "/a/b/SomeApi";

如果您使用的是 jQuery(它不在您的标签列表中),您可以这样做...

$(function(){
  $("#myAnchor").attr("href", "/a/b/SomeApi")
});

我认为 HREF 本来就不是动态的;为此,只需使用 onclick 属性,例如:

<a href="#" onclick="window.location.assign(foo())">Click</a>