我在 IE 9 中遇到了 JavaScript 范围的真正问题。
这是在我的文档正文中(是的,我意识到脚本应该放在头部以获得正确的 HTML,但我以前从未让它破坏过脚本)。该脚本在正文中,因为我不想弄乱仅与此页面相关的脚本的共享标题页面:
<script type="text/javascript">
function googleMapsQuery(accountNum) {
// function code is here (omitted for brevity)
}
</script>
这是在td
块内的tr
块内的块内的块内的tbody
块内的table
块内的form
块内body
:
<button id="google-422111" onclick="googleMapsQuery(422111)" type="button">Google This!</button>
我什至将脚本块移到表单上方,以防脚本函数声明的顺序相关(不是)。
该脚本在 FireFox 和 Chrome 中完美运行,但在 IE 9(打开或不打开兼容性视图)中,我收到此错误:
SCRIPT5007:属性“googleMapsQuery”的值为 null 或未定义,而不是函数对象
我研究了 JavaScript 范围,但我无法弄清楚为什么 IE 认为 'googleMapsQuery' 是一个属性,以及为什么它是未定义的。这是一个函数,我定义了它!