2009-11-07 1 views
0

мне нужно вызвать функцию Javascript из a элемента .. что-то вроде этого:мне нужно, чтобы построить свой URL в яваскрипте функции затем возвращает строку обратно в HREF

href='javascript:myjavascriptfunction();'. Мне нужна функция Javascript для получения значений из пары элементов управления датпикером, сборки и urlencode запроса и возврата его, чтобы он открывался в новом окне. Пока я думаю, что у меня есть все, но я изо всех сил пытаюсь создать URL-адрес и верну его правильно. Это мой a элемент до сих пор.

<a href='javascript:myjavascriptfunction();' id="myhyperlink" target="_blank"> 

В моей функции Javascript Я строю строку и вернуть его так:

return queryString; 

Результат: нажмите на ссылку и откроется новое окно с URL моего родительского окна с вызовом функции имя добавлено к нему?

ответ

1

Вам нужно использовать window.open(), чтобы заставить новое окно, я считаю, единственная причина, по которой он ведет себя, как это для вас, вы говорите, что открываете этот javascript в новом окне, и он делает именно это что вы говорите.

После того как вы получите свой url собранный, сделайте window.open(urlvar);, и вы должны получить то, что ищете.

Кроме того, ознакомьтесь с this post, как сделать аккуратный <a href=""> с onclick, который изящно деградирует. Как минимум, сделайте href="javascript:void(0)", а затем onclick="myjavascriptfunction(); return false;".

+0

Спасибо Пабло. который зафиксировал это. Спасибо тоже KinoPiko за ваши комментарии. У меня теперь есть еще одна проблема, обнаруженная при исправлении этого. Теперь я вижу, что использование функции escape для urlencode дат с элементов управления datepicker фактически не работает. есть идеи?? – danielea

+0

Возможно, это другой вопрос. –

0

Возвращаемое значение функции JavaScript недоступно браузеру в качестве HREF для ссылки. Чтобы сделать эту работу так, как вы планируете, вам нужно будет получить элемент A в JavaScript и вмешаться со своим HREF. Это возможно:

var link = document.getElementById ("myhyperlink"); 
link.href = "http://example.com/" + jiggerypokery(); 

где jiggerypokery() является то, что URL вы хотите сделать.

Однако вышеупомянутое глупо, поскольку оно перезаписывает ссылку на себя, и пользователю, вероятно, придется щелкнуть по нему дважды в любом случае. Как Пабло говорит, что вы должны использовать window.open здесь, так что в myjavascriptfunction()

var gotopage = "http://example.com/" + jiggerypokery(); 
window.open (gotopage); 
Смежные вопросы