我需要在javascript函数中构建我的url然后将字符串返回到href

时间:2009-11-07 02:38:32

标签: javascript href urlencode

我需要从a元素调用Javascript函数..这样的事情:

href='javascript:myjavascriptfunction();'。我需要Javascript函数来从几个datepicker控件获取值,构建和urlencode一个查询字符串并返回它以便它打开到一个新窗口。到目前为止,我认为我拥有一切,但我正在努力构建URL并正确地返回它。到目前为止,这是我的a元素。

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

在我的Javascript函数中,我正在构建字符串并将其返回:

return queryString;

结果:单击该链接,将打开一个新窗口,其中包含我父窗口的URL,并附加了函数调用名称?

2 个答案:

答案 0 :(得分:1)

你需要使用window.open()来强制一个新窗口,我相信它的行为就像是你的唯一原因就是你告诉它在新窗口中打开这个javascript,它正在做的正是你告诉它了。

在你的网址组装好之后,做一个window.open(urlvar);你应该得到你正在寻找的东西。

另外,请查看this post,了解如何使用优雅降级的onclick来整理<a href="">。至少要href="javascript:void(0)"然后onclick="myjavascriptfunction(); return false;"

答案 1 :(得分:0)

浏览器无法使用JavaScript函数的返回值作为链接的HREF。为了使这个工作按照您的意图,您必须在JavaScript中获取A元素并插入其HREF。这是可能的:

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

其中jiggerypokery ()是您要制作的任何网址。

然而,上面是愚蠢的,因为它覆盖了自身的链接,并且用户可能不得不两次点击它。正如Pablo所说,你应该在这里使用window.open,所以在myjavascriptfunction ()

var gotopage = "http://example.com/" + jiggerypokery ();
window.open (gotopage);