2011-08-04 23 views
6

私は、リンクを提供したいURLを構築する単純なJavaScript関数を持っています。html link、javascript関数からのhref割り当て

しかし、アンカータグを使用することはできません。アンカータグのhrefにJavascript関数の結果を割り当てるにはどうすればよいですか?

どちらもこれらのいずれかが正常に動作:

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

これは私が達成したいものです。

答えて

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

- アップデート -

私はuser278064sのコメントを組み込むしたい場合は、私はに上記の変更になります。リンクを付け

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

ありがとう、私はそれが必要なので、これは動作します! – Mike

+0

は、これらのうちの1つですが、より優れた方法と考えられていますか? –

+0

@ miss.serena:どちらも美人コンテストに勝つことはありませんが、2日目は美しいと考えられます。ステータスバーを書き直す 'onMouseOver' /' onMouseOut'コードに頼らずに、ステータスバーをよりきれいに保つからです。 しかし、最近誰かがステータスバーを使用していますか? ;) – micha

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

Click Here

+1

を働きました。 – Mike

0

id

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

は、後には、JavaScriptからそのhrefを設定します。

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

(あなたのJavaScriptが無効になっている人が表示されます、リンクのプレースホルダhrefを含めることができます。)

+0

「後で」とはどういう意味ですか?ページが読み込まれると、このリンクのhrefが正しい場所を指すようにして、リンクがクリックされるとユーザーをどこに行きたいかを指定します。実際には「後で」はありません。 – Mike

+0

@Mike "later on"は、 "ページ上のリンクの後に実行される任意のJavaScript"を意味します。これは、ドキュメントの終わりに含まれるJavaScriptファイル、ページの準備ができたときに実行される関数、またはリンクのすぐ下に配置される '

1

なし私のために働いていません。良い方法は、関数内に新しいリンクを作成することです。

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

以下は、これは絶対に何もしない私のため

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

<a id="aTag">Click Here</a> 
関連する問題