我在IE 9中遇到了JavaScript范围的真正问题.
这是在我的文档正文中(是的,我知道脚本应该在正确的HTML中,但我从来没有打破过脚本).该脚本在正文中,因为我不想弄乱只与此页面相关的脚本的共享页眉:
<script type="text/javascript">
function googleMapsQuery(accountNum) {
// function code is here (omitted for brevity)
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是在td块内部tr块内的tbody块内部table块内部form块内部body:
<button id="google-422111" onclick="googleMapsQuery(422111)" type="button">Google This!</button>
Run Code Online (Sandbox Code Playgroud)
我甚至将脚本块移到了表单上方,以防脚本函数声明的顺序相关(事实并非如此).
该脚本在FireFox和Chrome中运行完美,但在IE 9中(有或没有兼容性视图),我收到此错误:
SCRIPT5007:属性"googleMapsQuery"的值为null或未定义,而不是Function对象
我研究了JavaScript范围,我无法弄清楚为什么IE认为'googleMapsQuery'是一个属性,以及为什么它未定义.这是一个功能,我定义了它!
javascript runtime-error function undefined internet-explorer-9