2012-01-19 86 views
0

我有JavaScript函數示例('textValue'),並且必須在服務器端調用錨點單擊。我嘗試了下面的代碼如何從客戶端調用JavaScript函數錨點擊

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

但文本的值沒有正確分配。編碼字符串被添加。在查看源代碼的結果看起來像

javascript:sample('xyz') 

但我需要的JavaScript:樣品(「XYZ」)

+2

你使用什麼服務器技術?禁用該屬性值的轉義。 –

+0

@Sergio Tulentsev - 它在服務器端的asp.net + c# –

回答

0

服務器/後端語言你用什麼? 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」噸。

0

我不知道你可能只是這樣做:

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

它有什麼作用?那麼,onclick處理程序接受一個沒有參數的函數,對吧?也就是什麼要做,如果有人點擊鏈接。如果您使用HTML編寫該代碼,則可以使用javascript:a_statement_goes_here來描述要運行的代碼。我希望瀏覽器能夠創建一個功能。由於您使用JavaScript進行分配,因此您必須自己執行此操作(除非您寫出文檔 - 可能會有效)並分配該功能。但是你還沒有這樣的功能 - 你有一個sample需要一個參數 - 因此這個匿名函數關閉了text參數。

這是基於這樣的假設,即上面實際上是客戶端代碼。如果JS不允許你爲一個屬性指定一個函數,我會非常驚訝。事實上,我認爲你遇到的問題是,JavaScript試圖非常聰明,並確保分配一個字符串,將保持一個字符串 - 這就是爲什麼你的'編碼。

走開,告訴我它是怎麼回事。 TA!

+1

那不可能工作,因爲'string'不是有效的JS和'function(){}'是無效的C# – Raynos

+0

啊,很好的發現。好的,我假設這是JS客戶端代碼。你知道他們對假設的看法... –

相關問題