使用較大的 JavaScript 函數(3)—Page.ClientScript.RegisterStartupScript 與 Page.ClientScript.RegisterCli

來源:互聯網
上載者:User
我們已為您介紹了兩種不同的可用來將 JavaScript 函數嵌入 ASP.NET 頁面的方法,那麼,二者之間有何不同呢?主要區別在於, RegisterStartupScript 方法是將 JavaScript 嵌入到 ASP.NET 頁面的底部,恰好位於關閉元素 </form> 的前面。 RegisterClientScriptBlock 方法是將 JavaScript 嵌入到頁面中開啟元素 <form> 的緊後面。那麼,這有何不同呢?正如我們將要看到的,這有很大的不同。

就此列舉一例,以下是在頁面載入到瀏覽器時,將焦點置於該頁面上的一個文字框中的方法 - 使用利用了 RegisterStartupScript 方法的 Visual Basic:

Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", _ 
  "document.forms[0]['TextBox1'].focus();", True)

由於在瀏覽器運行到頁面底部並執行此小段 JavaScript 時,就已產生了頁面上的文字框,並已將其放到了頁面中,因此,此方法運行正常。但是,如果不按照上述方法,而編寫如下代碼(使用 RegisterClientScriptBlock 方法):Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", _
  "document.forms[0]['TextBox1'].focus();", True)

文字框控制項將不會獲得焦點,且會在頁面上產生一個 JavaScript 錯誤

出錯的原因在於,瀏覽器將先遇到 JavaScript,而後文字框才會出現在頁面中。因此,JavaScript 將無法找到 TextBox1

將 JavaScript 放到單獨的檔案 (.js) 中

強烈建議將 JavaScript 函數放到單獨的檔案中(.js 檔案)。一旦它們位於單獨的檔案中,並且是某個項目的一部分,即可使用某些曾經介紹過的方法將該檔案匯入到頁面中。

例如,可通過以下代碼將 .js 檔案包括到 ASP.NET 頁面中:

Visual Basic

Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "MyScript", _
   "MyJavaScriptFile.js")

C#Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", 
   "MyJavaScriptFile.js");

一旦將 .js 檔案匯入到了 ASP.NET 頁面中,即可像以前一樣調用任何 JavaScript 函數。如果要管理 JavaScript 函數,並將它們與其他 ASP.NET 頁面的邏輯分離,這是個不錯的方法。也可使用該方法很容易地在多個 ASP.NET 頁面中使用相同的 JavaScript 函數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.