2015-01-08 1 views
2

У меня есть яваскрипт функция:Как сгенерировать содержимое ссылки href по возвращаемому значению функции javascript?

function foo() { return "https://stackoverflow.com/a/b/SomeApi"; } 

тогда у меня есть href ссылки на моей веб-странице. Я хочу, чтобы эта ссылка указывала на значение, возвращаемое моей функцией javascript, так что, когда пользователь нажимает на ссылку, это как если бы пользователь нажал ссылку с URL-адресом /a/b/SomeApi.

Я попробовал следующее:

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

Но результат этого браузер откроет новое окно, показывая буквальное значение /a/b/SomeApi вместо отправки запроса на сервер.

Любые предложения? Благодарю.

+0

Почему бы не установить значение href в требуемое значение в первую очередь? – RobG

+0

@RobG, потому что связь должна генерироваться динамически. Я устанавливаю фиксированное значение здесь просто для простоты. – weidi

ответ

0

Я не думаю, что HREF был когда-либо имел в виду, чтобы быть динамичным ; для этого просто используйте свойство onclick, такое как:

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

вот что мне нужно, спасибо! – weidi

1

Вместо возвращения строки, установить местоположение текущей страницы с ним, как это ...

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

Как указывает @ haim770 - это не дроидов ты ищешь.

Если вы хотите конкретно установить атрибут href, вы должны сделать это извне ссылки. Во-первых, вы должны дать вашей ссылке в id атрибут, например, это ...

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

Этот фрагмент кода, то следует поместить либо после элемента на странице, или как часть «документа загружен» кусок кода.

document.getElementById("myAnchor").href = "https://stackoverflow.com/a/b/SomeApi"; 

Если вы используете JQuery (который не находится в списке тегов) вы могли бы сделать что-то вроде этого ...

$(function(){ 
    $("#myAnchor").attr("href", "https://stackoverflow.com/a/b/SomeApi") 
}); 
+0

Это не отвечает на вопрос. – haim770

+0

Ах, перечитайте его - справедливая точка @ haim770 ... отредактирует – freefaller

+0

. Установка window.location.href - это правильно, потому что каждый раз, когда я нажимаю ссылку, ссылка может быть другой. спасибо за ваше предложение в любом случае :) – weidi

Смежные вопросы