簡體   English   中英

Asp.net RegisterStartupScript沒有解雇

[英]Asp.net RegisterStartupScript not firing

在我的asp.net應用程序中,我試圖調用Javascript函數,通過執行以下操作:

Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv", "function goToDiv(){window.location.hash = '#ctl00_body_ApplicationFormContainer'};", true);        

但它並沒有解雇。

在回發事件之后調用JavaScript函數,但我認為它仍然應該觸發,因為我將以下代碼添加到我的Page_Load

if (IsPostBack)
    {
        Response.Write("POSTBACK:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));            
    }

並將startupscript更改為:

Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv", "alert('POSTBACK: "+DateTime.Now.ToString("hh.mm.ss.ffffff")+"')", true);         

並且JavaScript警報時間是在回發時間之后,告訴我在回發后觸發了JavaScript警報?

然后我更改了代碼並在運行啟動腳本之前轉到控制台中的sources選項卡,然后輸入:

goToDiv()

出現以下錯誤:

Uncaught ReferenceError: goToDiv is not defined(…)

例如,該功能不存在。

然后我再次進入它,在啟動腳本事件之后,它運行了,所以我知道函數已經創建 - 所以為什么它沒有運行?

我的代碼似乎在語法上是正確的,所以我看不出問題是什么?

你的代碼: -

Page.ClientScript.RegisterStartupScript(this.GetType(), "goToDiv",
   "function goToDiv(){window.location.hash = '#ctl00_body_ApplicationFormContainer'};",
    true);

只是添加一個Javascript函數,但不執行它。 你需要觸發這個功能嗎?

只需添加一個按鈕即可測試: -

<input type="button" onclick="goToDiv()"  value="Foo" />

當您單擊此按鈕時,它將執行此Javascript函數。

如果你打算執行一些塊,那你為什么要創建一個函數? 您可以自己執行Javascript語句。

並且JavaScript警報時間是在回發時間之后,告訴我在回發后觸發了JavaScript警報?

是的,很明顯,您正在服務器端注冊Javascript代碼,因此當頁面在瀏覽器(客戶端)中呈現時,您的JS代碼將被執行。

暫無
暫無

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

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