脚本标签之间的 JavaScript 函数作用域

标签 javascript html jsp

我有两个不同的 JSP,Java 后端将它们连接在一起并发回同一个呈现的 HTML 页面。

每个 JSP 都有自己的 <script> block 并在该 block 内定义函数:

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() . 这里是这种情况,还是其他地方出了问题?

当我查看页面源代码时,我看到了两个脚本 block 和两个函数。这告诉我一切都在服务器端正确生成/呈现,但也许我的方法本质上是错误的(在不同的脚本标签内定义函数)。提前致谢。

最佳答案

它们都是全局的。他们可以看到对方。问题是当它们被定义并相互调用时。

您应该按以下顺序定义和调用它们:

  1. 酒吧
  2. 调用foo
    • foo 执行并调用 bar
    • 酒吧被执行

关于脚本标签之间的 JavaScript 函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289593/

相关文章:

java - java bean 中的线程

javascript - toLocaleString() 在货币和值之间有空格

javascript - Thymeleaf HREF 服务器上下文

html - 嵌套列表和悬停效果的问题

javascript - 如何让 Angular.js 与其他库一起使用?

html - 如何阻止 Images of Pure Grid Div 下的文本被压扁

javascript - 从jsp加载servlet并尝试传递多个参数

javascript - 使用 JQuery 删除链接

javascript - 在 Wordpress 中排队 jQuery

java - Spring 网络流: Understanding generated JSP