Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从vb.net代码隐藏(.html非.aspx)调用外部javascript函数中定义的函数_Javascript_Asp.net_Vb.net - Fatal编程技术网

从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>