从vb.net代码隐藏(.html非.aspx)调用外部javascript函数中定义的函数
我有一个普通的从vb.net代码隐藏(.html非.aspx)调用外部javascript函数中定义的函数,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我有一个普通的.html页面,其中有一个hiddenField和对External.js的引用。由于我是使用ASP.NET实现的,所以服务器端将首先执行。但是,在执行服务器代码之前,我需要在External.js中执行一个函数。该解决方案可通过以下代码获得: *In.aspx* 当我使用.aspx页面时,该代码工作正常。显然,我不能在普通的.html页面中使用任何ASP.NET服务器控件。因此,在.html页面中使用将不起作用。如何在.html页面中执行相同的操作。在.html页面中应该定义什么
.html
页面,其中有一个hiddenField
和对External.js
的引用。由于我是使用ASP.NET实现的,所以服务器端将首先执行。但是,在执行服务器代码之前,我需要在External.js
中执行一个函数。该解决方案可通过以下代码获得:
*In.aspx*
当我使用.aspx
页面时,该代码工作正常。显然,我不能在普通的.html
页面中使用任何ASP.NET
服务器控件。因此,在.html
页面中使用
将不起作用。如何在.html
页面中执行相同的操作。在.html页面
中应该定义什么,以及如何从后面的代码调用函数,记住我不能使用任何
控件
好的,我想做的是我的External.js
,它有一个函数populateHidden()
,它基本上为我的hiddenField设置一个值
function populateHidden()
{
document.getElementByID('Hidden').value = "abcdefg";
}
我还有另一个函数PassData()
,它基本上初始化一个ajax请求
,将Hidden
的值传递给隐藏的代码(使用webMethod)。问题是我希望先执行populateHidden()
,以便passData()
将abcdefg
(在执行populateHidden()
之后)传递给后面的代码,以便将值存储在数据库中。因此,目前我运行这两个函数的方式如下
in.html
在代码隐藏中
正在尝试执行populateHidden()由于服务器端首先执行,因此加载页面上的code> 我不确定我是否理解正确。但是,如果您想以与以前相同的方式调用脚本,只需执行以下操作:
<body onload="MyFunction();">
完整版本:
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="External.js" type="text/javascript"></script>
</head>
<body onload="MyFunction();">
...
</body>
</html>
文件
...
是吗 我借用了@Cleydson的答案:
JS
function MyFunction()
{
populateHidden();
PassData();
}
HTML
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="External.js" type="text/javascript"></script>
</head>
<body onload="MyFunction();">
...
</body>
文件
...
现在您正在调用populateHidden()
之前的PassData()
。html文件没有代码,因为它们只是html。在服务器在asp.net中呈现页面之前,无法执行客户端代码,因为客户端尚未收到生成的html。你能举一个更具体的例子来说明你想要完成什么吗?你写道:“但是,我需要在执行服务器代码之前执行External.js
中的函数。”普通HTML代码没有服务器执行功能,所以我不清楚你想做什么。不要用ASP.NET来表达你的想法,只需说出你想做的事情,比如:“我希望javascript在页面呈现之前在我的HTML中插入一个图像标记”之类的。您所有的ASP.NET比较都混淆了这个问题,因为这不是ASP.NET问题。@Andorbal我更新了我的帖子HTML文件上没有页面加载。如果你说的是一个ASPX页面,那么为什么不直接渲染呢?@androbal我知道HTML
文件中没有page\u Load
,我在帖子的代码隐藏部分提到了它。我无法通过PassData()
传递数据,因为Hidden
不是静态的,而是不断变化的。所以我需要先执行populateHidden()
,然后再执行passData()
。是的,但问题是我在文章末尾提到了两个函数,我需要在passData()
之前执行populateHidden()
,并且我提到了它们当前的执行方式。好的。哼。你把它编辑清楚了。我认为@androbal澄清了你的想法,对吗?
function MyFunction()
{
populateHidden();
PassData();
}
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="External.js" type="text/javascript"></script>
</head>
<body onload="MyFunction();">
...
</body>