HTML文件中的连续Javascript脚本标记
我有一个.jsp文件,如下所示。请注意: 有两个脚本标记 第一个脚本标记具有与之关联的Javascript类型,第二个没有 第二个脚本标记直接位于第一个脚本标记之后 第二个脚本标记包含从第一个脚本内部调用的函数HTML文件中的连续Javascript脚本标记,javascript,html,Javascript,Html,我有一个.jsp文件,如下所示。请注意: 有两个脚本标记 第一个脚本标记具有与之关联的Javascript类型,第二个没有 第二个脚本标记直接位于第一个脚本标记之后 第二个脚本标记包含从第一个脚本内部调用的函数 浏览器如何评估标签——函数是在不同于第一个标签的标签中定义的这一事实可能是罪魁祸首吗?将两个标记连接在一起是否有任何问题?我本以为在任何浏览器中都会出现错误 到达结束标记后执行标记。因此,当第一个标记关闭时,函数定义尚未处理。这应与未捕获引用错误中断:调用函数时未定义foo: 傅; 函
浏览器如何评估标签——函数是在不同于第一个标签的标签中定义的这一事实可能是罪魁祸首吗?将两个标记连接在一起是否有任何问题?我本以为在任何浏览器中都会出现错误 到达结束标记后执行标记。因此,当第一个标记关闭时,函数定义尚未处理。这应与未捕获引用错误中断:调用函数时未定义foo: 傅; 函数foo{ console.logfoo; }
你不需要打字。可能是浏览器扩展把事情搞砸了。@dandavis:解析时间引用到哪里了?编辑:我明白了,是的,错误可能是间歇性的,因为其他用户没有进入调用problemantic函数的代码分支;还有,它对all-1还有什么作用呢?@dandavis推测:注释和名称总是存在的:而且,它可能不是代码中调用某些东西的唯一位置。这里有一个简单的方法,它适用于除一个以外的所有人:如果用户==倒霉的家伙做了什么,尽管我不认为这是那么明显。你是对的,有些可疑的事情正在发生。公平的说,我可以买所有的东西,但这并不能很好地解释为什么有时会这样,但我不确定我们是否能够回答,没有进一步的信息或实际的非语法错误代码。。。也许浏览器是netscape,或者某个扩展试图强制执行严格的html。也就是说,OP最好检查堆栈跟踪并查看函数从何处调用以及何时调用。调试器;在脚本标签之间插入将让您知道在第一次脚本执行期间是否有任何恶作剧发生,即页面准备就绪时。
<div>
<!-- various bits of HTML and JSTL etc -->
</div>
<script type="text/javascript">
runWhenPageReady() {
doSomething();
}
</script>
<script>
function doSomething() {
//do something
}
</script>
Uncaught ReferenceError: doSomething is not defined