从代码隐藏访问 JavaScript 函数
本文关键字:JavaScript 函数 访问 隐藏 代码 | 更新日期: 2023-09-27 18:01:14
我在文档中有一个函数:
$(document).ready(function () {
function test1() {
alert('successful');
}
});
现在在代码隐藏(C#(中,我有这个:
ScriptManager.RegisterStartupScript(this, typeof(Page),"Con121", "test1();", true);
这不会弹出警报...但是如果我将其从就绪功能中删除,则可以正常工作。我需要这个准备好工作。
我什至尝试这样做没有成功:
$(document).ready(function () {
window.test1 function test1() {
alert('successful');
}
});
尝试:
var test1;
$(document).ready(function () {
test1 = function () {
alert('successful');
}
});
这里的问题是范围界定。 由于您是从另一个函数(ready
(中声明函数test1
的,因此从代码隐藏创建的启动脚本将无法从ready
函数外部访问它。
此外,您需要确保启动脚本在jQuery.ready
后触发,否则您可能会尝试调用未赋值的变量。
最后,如果不需要从 ready
中专门声明函数,只需将其完全移出,以便函数声明和赋值都存在于全局范围内。
(
部分(您的问题是您的ScriptManager.RegisterStartupScript
调用将test1();
调用放在页面HTML中的某个位置,并立即执行,但是包装test1
定义的$(document).ready(function () { ... });
意味着在页面(包括调用(已经加载
没有理由等待文档准备好定义你的函数,那么为什么不直接定义它呢?
或者,为什么不删除ScriptManager.RegisterStartupScript
并将调用test1();
紧跟在定义之后?这将在页面加载完成后立即调用它:
$(document).ready(function () {
function test1() {
alert('successful');
}
test1();
});