簡體   English   中英

如何在錨點上從客戶端調用javascript函數

[英]how to call javascript function from client side on anchor click

我有javascript函數sample('textValue'),並且必須在服務器端調用錨點單擊。 我嘗試下面的代碼

string text="xyz";
anchor.Attributes.Add("onclick","javascript:sample('"+text+"');

但是文本的值分配不正確。 編碼字符串被添加。 視圖源中的結果看起來像

javascript:sample('xyz')

但我需要javascript:sample('xyz')

您使用哪種服務器/后端語言? PHP的? 您是否使用任何框架(Zend,CakePHP ...)?

在JS方面,請執行以下操作:

選項1

<a href="/a_page" onclick="sample('text');">Test</a>

選項2

<a href="/a_page" id="clicky-clack-link">Test</a>
<script type="text/javascript">
    document.getElementById('clicky-clack-link').onClick = function() {
        sample('test');
    };
</script>

注意:如果還沒有的話,也請查看jQuery

我想知道您是否可以這樣做:

string text="xyz";
anchor.Attributes.Add("onclick", function(){ sample(text); } );

它有什么作用? 好吧, onclick處理程序接受一個沒有參數的函數,對嗎? 也就是說,如果有人單擊鏈接該怎么辦。 如果您是用HTML手工編寫的,則可以使用javascript:a_statement_goes_here描述要運行的代碼。 我希望瀏覽器會在其中創建一個函數。 由於您是使用JavaScript進行分配的,因此您必須自己做(除非您寫出文檔,否則可能會起作用)並分配函數。 但是您還沒有這樣的函數-您有一個帶有參數的sample -因此匿名函數關閉了text參數。

這是基於以下假設:以上內容實際上是客戶端代碼。 如果JS不允許您將函數分配給屬性,我會感到非常驚訝。 實際上,我認為您遇到的問題是JavaScript試圖變得非常聰明,並確保分配一個字符串,並將其保留為一個字符串-這就是您'進行編碼的原因。

快去,告訴我進展如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM