我有一个普通.html
页面,其中包含一个hiddenField
和一个对External.js
. 由于我正在实现 using ASP.NET
,服务器端将首先执行。但是,我需要External.js
在服务器代码执行之前执行一个函数。该解决方案可通过以下代码获得:
*在 .aspx 中*
<script src="External.js" type="text/javascript"></script>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />`
在 .aspx.vb 中
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
If Not Page.IsPostBack Then
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "register", "MyFunction();", True)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
当我使用.aspx
页面时,代码可以完美运行。显然,我不能ASP.NET
在纯.html
页面中使用任何服务器控件。所以<asp:ScriptManager>
在.html
页面中使用是行不通的。我怎样才能在一个页面中做同样的事情。.html
中应该定义什么.html page
以及如何从后面的代码中调用该函数,请记住我不能使用任何<asp:>
控件。
好的,所以我想要做的是我有 my External.js
which 具有populateHidden()
基本上为 my 设置值的功能hiddenField
。
function populateHidden()
{
document.getElementByID('Hidden').value = "abcdefg";
}
我还有另一个函数PassData()
,它基本上初始化ajax request
服务器以将值传递Hidden
给后面的代码(使用 webMethod)。问题是我想populateHidden()
先执行,以便passData()
传递abcdefg
(在populateHidden()
执行之后)到后面的代码以将值存储在数据库中。所以目前我运行这两个功能的方式如下。
在 .html 中
<body onload="PassData()">
在代码隐藏中
由于服务器端首先执行populateHidden();
,因此尝试继续执行。Page_Load