[英]Call JS function from CodeBehind file
我無法從文件后面的代碼訪問Javascript函數。 我需要執行此操作,因為我正在使用GoogleMaps JS API根據從數據庫中檢索到的地址向地圖添加標記。 我有一個名為AddMarker的函數,該函數將地址作為參數,因此我需要能夠從page_load函數中文件后面的代碼中調用該函數。
為了簡化問題,我如何調用此javascript函數以顯示警報,其中包含從文件后面的代碼傳遞的字符串?
function hello(message)
{
alert(message)
}
提前致謝!
PS VB或C#都可以:)
那應該做:
protected void Page_Load(object sender, EventArgs e)
{
string bing = "link";
Response.Write(@"<script language='javascript'>alert(bing);</script>");
}
我不確定這是否是最佳做法,但是在定義好之后,您可以在頁面中的某個位置呈現對JS函數的調用。
或者,您可以使用jQuery將呼叫延遲,直到頁面中的所有內容都呈現為止。
所以
<script type="text/javascript">
$(document).ready(function(){
hello("myAspString");
});
</script>
用您的內容替換myAspString,確保保留JS所需的引號。
此代碼將導致使用后面的代碼中的值調用函數hello
:
string value = "world";
Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "my_script", string.Format("hello('{0}');", value.Replace("'", "\\'")), true);
RegisterClientScriptBlock
會將適當的<script>
標記附加到發送到瀏覽器的HTML輸出中,並將代碼注入其中。
第二個參數是腳本的“鍵”,它使您可以擁有多個語句,並檢查是否已基於鍵注冊了特定的語句。 最后一個參數告訴框架為您添加<script>
標記。
您需要用適當的轉義序列替換任何單引號,以避免在包含單引號的字符串時破壞該字符串,因為這是用於將值傳遞給函數的“定界符”。
您可能會認為這是一種黑客行為,但始終可以將消息放在html元素中,例如:
<p id='message' style='display: none;'>Your Message</p>
然后在您的JavaScript中:
function hello()
{
var m = document.getElementById('message').innerHTML;
alert(m);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.