2011-08-04 12 views
6

Tôi có một hàm Javascript đơn giản tạo một Url mà tôi muốn cung cấp liên kết đến.liên kết html, gán href từ một hàm Javascript

Tuy nhiên, dường như tôi không thể làm cho thẻ neo hoạt động với nó. Làm cách nào để gán cho href thẻ kết quả của hàm Javascript?

Cả một trong những hoạt động chính xác:

<a href="getUrl();">Click here</a> 
<a href="javascript:getUrl();">Click here</a> 

Đây là những gì tôi muốn đạt được.

Trả lời

11
<script type="text/javascript"> 
    function getUrl() 
    { 
     return "http://www.google.com"; 
    } 
</script> 
<a href="javascript:document.location.href=getUrl();">Click here</a> 

- cập nhật -

Nếu tôi muốn kết hợp ý kiến ​​user278064s', tôi sẽ thay đổi ở trên vào:

<script type="text/javascript"> 
     function getUrl() 
     { 
      return "http://www.google.com"; 
     } 
    </script> 
    <a href="#" onClick="document.location.href=getUrl();">Click here</a> 
+0

Cảm ơn bạn, điều này hoạt động như tôi cần nó! – Mike

+0

là một trong những điều được coi là thực hành tốt hơn? –

+0

@ miss.serena: Sẽ không giành được một cuộc thi sắc đẹp, nhưng cuộc thi thứ hai sẽ được xem là tốt hơn trong những ngày qua. Bởi vì nó giữ thanh trạng thái của bạn sạch sẽ hơn, mà không cần đến 'onMouseOver' /' onMouseOut' mã mà viết lại thanh trạng thái. Nhưng ai sử dụng thanh trạng thái vào những ngày này? ;) – micha

0
<a onclick="getUrl();" href="#">Click here</a> 

Click Here

+1

này không hoàn toàn không có gì. – Mike

0

Đưa vào liên kết an id:

<a id="specialLink">Click Here</a> 

Sau đó, thiết lập href từ JavaScript:

document.getElementById('specialLink').href = getUrl(); 

(Bạn có thể muốn bao gồm một placeholder href trong liên kết mà những người có JavaScript bị vô hiệu hóa sẽ thấy.)

+0

'Sau này' nghĩa là gì? Khi tải trang, tôi muốn href của liên kết này trỏ đến vị trí chính xác để khi liên kết được nhấp vào, người dùng sẽ đến nơi tôi muốn họ đi. Thực sự không có 'sau này'. – Mike

+0

@Mike “later on” chỉ có nghĩa là “trong bất kỳ JavaScript nào chạy sau liên kết trên trang”. Nó có thể là một tệp JavaScript được bao gồm ở cuối tài liệu, một hàm chạy khi trang đã sẵn sàng hoặc một khối '

1

Không ai trong số các giải pháp trên làm việc cho tôi. Cách tốt nhất là tạo liên kết mới trong hàm.

function fetchURL() { 
 
    var title = "Download"; 
 
    var URL = title.link("https://www.google.com"); 
 
    document.getElementById("dynamicButton").innerHTML = URL; 
 

 
}
<body onload="fetchURL()"> 
 
    <div id="dynamicButton"> 
 
    //empty 
 
    </div>

0

Sau đây làm việc cho tôi

<script type="text/javascript"> 
    $(function() { 
     document.getElementById("aTag").href = getUrl(); 
    }); 
</script> 

<a id="aTag">Click Here</a> 
Các vấn đề liên quan