脚本标记之间的 JavaScript 函数作用域
JavaScript function scope between script tags
我有两个不同的 JSP,Java 后端将它们连接在一起并发送回同一个呈现的 HTML 页面。
每个 JSP 都有自己的<script>
块,并在该块内定义函数:
JSP #1:
<script type="text/javascript">
function blah() { ... }
</script>
JSP #2
<script type="text/javascript">
function foo()
{
blah();
}
</script>
就像我说的,后端将这些添加到HTTP响应中,并在同一请求期间将它们发送回浏览器。
当我在浏览器中运行此页面时,我可以立即判断blah()
在被调用时foo()
未执行。我在Firebug中看到一个控制台错误,指出未定义blah()
。我想知道blah()
是否只有自己的<script>
标签内的范围,同样适用于foo()
.是这里的情况,还是其他不对劲的地方?
当我去查看页面源代码时,我看到了脚本块和两个函数。这告诉我一切都在服务器端正确生成/渲染,但也许我的方法本质上是错误的(定义不同脚本标签中的函数)。提前谢谢。
它们都是全局的。 他们可以看到彼此。 问题是当它们被定义并相互调用时。
您应该按以下顺序定义和调用它们:
- 酒吧 噗
- 噗��
- 呼傅
- foo执行和调用栏
- 柱线被执行
你可以像这样调用函数:
(function($) {
var namespace;
namespace = {
something : function() {
alert('hello there!');
},
bodyInfo : function() {
alert($('body').attr('id'));
}
};
window.ns = namespace;
})(this.jQuery);
$(function() {
ns.something();
ns.bodyInfo();
});
在 JavaScript 中定义作用域的唯一内容是一个函数,所以你的问题不是范围问题。您很可能没有调用 foo(),而是在定义 blah() 之前调用它,或者您在某处遇到语法错误。也许您可以发布整个HTML页面,以便我们了解发生了什么。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别