未捕获参考错误

时间:2013-03-21 17:06:28

标签: javascript getelementbyid

我的头脑里有这个代码

<script language="JavaScript">
function alertSize() {
    // Get Browser Viewport Width
    var adjust = "<?php echo $adjust; ?>";
    // Get Browser Viewport Height
    var height = window.innerHeight ||
    document.documentElement.clientHeight ||
    document.body.clientHeight;
    // Get Browser Viewport Height
    var height = window.getSize().y;

}
window.onload = alertSize;


</script>

我的身体里有这个

<div id="bodyheight">

                </div>
                <script language="JavaScript">
                document.getElementById("bodyheight").style.height = height;</script>

然后我进入了身体代码:

  

'未捕获的ReferenceError:未定义高度'

在头部代码中我知道高度有一个值,当我输出'height'作为弹出窗口时显示正确的值。

我知道'document.getElementById(“bodyheight”)。style.height =;'当我放置一个固定值代替'height'变量时,它会起作用。

但由于某种原因,我无法在document.getElementById("bodyheight").style.height = height;中使用'height'变量。

2 个答案:

答案 0 :(得分:1)

height是一个函数局部变量,只能在alertSize()内使用。您的内联脚本正在尝试使用它,但此时此变量不在范围内。

此外,请注意您使用var语句两次来创建height变量。您正在重新声明一个局部变量,许多开发人员认为这是一个错误。

答案 1 :(得分:0)

可变范围 尝试

var height;
function alertSize() {
    // Get Browser Viewport Width
    var adjust = "<?php echo $adjust; ?>";
    // Get Browser Viewport Height
    height = window.innerHeight ||
    document.documentElement.clientHeight ||
    document.body.clientHeight;
    // Get Browser Viewport Height
    height = window.getSize().y;

}

此处有更多信息:What is the scope of variables in JavaScript?

希望这会有所帮助