2009-11-07 50 views
0

我需要從a元素調用JavaScript函數..是這樣的:我需要建立我的網址中的JavaScript函數,然後返回的字符串返回HREF

href='javascript:myjavascriptfunction();'。我需要Javascript函數來獲取來自幾個datepicker控件的值,構建和urlencode查詢字符串並將其返回,以便它打開到一個新窗口。到目前爲止,我認爲我擁有一切,但我正在努力構建URL並正確返回。這是迄今爲止我的a元素。

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

在我的JavaScript函數我建立了串並返回它是這樣的:

return queryString; 

結果:單擊鏈接和一個新的窗口,我的父窗口與函數調用的網址打開名稱附加到它?

回答

1

你需要使用window.open()來強制一個新窗口,我相信它的行爲就像它的唯一原因是你告訴它在一個新窗口中打開該javascript,你在說什麼。

當你得到你的url組裝後,做一個window.open(urlvar);,你應該得到你想要的。

此外,檢查出this post如何使一個整潔<a href="">與onclick優雅退化。至少,做href="javascript:void(0)",然後onclick="myjavascriptfunction(); return false;"

+0

感謝巴勃羅使用window.open在這裏,所以。修復它。謝謝你KinoPiko給你評論。我現在修復這個問題後發現了另一個問題。現在我看到使用轉義函數urlencode從datepicker控件的日期實際上並不工作。有任何想法嗎?? – danielea 2009-11-07 03:18:51

+0

也許這是另一個問題。 – 2009-11-07 03:26:34

0

JavaScript函數的返回值作爲鏈接的HREF不可用於瀏覽器。爲了按照你的意圖完成這項工作,你必須在JavaScript中獲得A元素並且干預HREF。這是可能的:

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

其中jiggerypokery()是你想要的任何URL。

但是,上面的內容很愚蠢,因爲它會覆蓋自身的鏈接,用戶可能不得不點擊它兩次。由於巴勃羅說,你應該在myjavascriptfunction()

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