2011-05-17 90 views
2
<%@ Page Language="VB" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
    <script runat="server"> 

Sub Page_Load(ByVal e As System.EventArgs) 
Page.ClientScript.RegisterClientScriptInclude("basicjs", "basic.js") 
End Sub 

</script> 
    <title>RegisterClientScriptBlock Example</title> 
    </head> 
    <body> 
<form runat="server"> 
    <input type="button" id="button1" value="clickme" onclick="click()"/> 
</form> 
    </body> 
</html> 

我使用ASP.net(只是學習)與VB。我似乎無法獲得Javascript代碼與ASP VB代碼一起工作。我的主要問題似乎是.js文件未加載。在這個例子中,basic.js只包含一個調用alert()消息的函數click()。如何獲得.js文件以使用ASP代碼加載?如何使用ASP.NET加載.js文件?

+0

檢查下載的網頁的HTML源代碼進行檢查,看是否包括已經產生了預期的腳本,例如'' – Justin 2011-05-17 00:34:45

+0

是的,當我查看源文件時缺少該文件。幾乎所有東西都包含在內,除了腳本標籤中的所有內容。我怎樣才能確保它不會忽略或跳過它? – ShrimpCrackers 2011-05-17 05:50:58

+0

您是否嘗試在您的'Page_Load'方法中放置斷點以查看它是否被正確解鎖?另外我假設你知道你可以在你的.aspx文件中手動編寫'script'標籤? – Justin 2011-05-17 05:57:47

回答

1

您不需要任何服務器端代碼來加載JavaScript文件。只需將其放入您的<head>

<script src="basic.js"></script> 
+0

ASP。Net有管理和生成這些代碼的機制,包括代碼隱藏/服務器端邏輯,我很確定這是海報想要做的。 – Justin 2011-05-17 05:59:20

1

JavaScript是一種客戶端腳本語言。這不是你的服務器應該執行的東西;客戶應該。

ASP是一種服務器端語言,它生成一些呈現給用戶的輸出。因此,執行JavaScript不是ASP的責任。

相反,您應該只在JavaScript中包含JavaScript,從而告訴客戶端執行它。

<script type="text/javascript" src="basic.js"></script> 
+1

儘管技術上正確,但我確信海報已經意識到了這一點 - ASP.Net有管理和生成這些包括在代碼背後/服務器端邏輯的mecahnisms,我很確定是海報想要做什麼。 – Justin 2011-05-17 05:58:43

1

首先檢查是否有標籤被通過查看來自瀏覽器的頁面源呈現的頁面。一旦建立了包含標籤,請檢查腳本文件的路徑。

This article explains如何解決路徑正確

基本上在onload事件中使用:

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
    Page.ClientScript.RegisterClientScriptInclude("basicjs", ResolveClientUrl("~/basic.js")) 
End Sub 
0

您需要包括如下

<script type="text/javascript"> 
    // your code goes here. 
</script> 


如果JavaScript文件然後按照

<script type="text/javascript" src="javascript_file_path"> 
     // your code goes here. 
    </script> 
+0

儘管技術上正確,但我不認爲這是海報試圖實現的目標 - ASP.Net有管理和生成這些代碼的機制,包括在代碼背後/服務器端邏輯,我很確定這是海報想要的做。 – Justin 2011-05-17 05:56:07

1

應該是這樣......

Page.ClientScript.RegisterClientScriptInclude("JScripts", ResolveUrl("~/JSFolderName/basic.js"));