我有两个不同的 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 和两个函数。这告诉我一切都在服务器端正确生成/呈现,但也许我的方法本质上是错误的(在不同的脚本标签内定义函数)。提前致谢。
最佳答案
它们都是全局的。他们可以看到对方。问题是当它们被定义并相互调用时。
您应该按以下顺序定义和调用它们:
- 酒吧
- 富
- 调用foo
- foo 执行并调用 bar
- 酒吧被执行
关于脚本标签之间的 JavaScript 函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289593/