2013-03-21 179 views
0

我有这样的代码在我的脑海未捕获引用错误

<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> 

但我得到的机身码:

'Uncaught ReferenceError: height is not defined'

在头部代码我知道高度有一个值,因为当我输出“高度”时弹出显示正确的值。

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

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

+0

从头开始,我从另一篇文章的回应....解决withwindow.onload =功能(){ //获取浏览器视口宽度 var adjust =“200”; //获取浏览器视口高度 var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; //获取浏览器视口高度 height =(window.getSize)? window.getSize()Y:高度; var newHeight =(height - adjust)+'px' window.alert(height +'adjusted to'+ newHeight); document.getElementById(“bodyheight”)。style.height = newHeight; } – 2013-03-21 17:08:50

回答

1

height是一个函数局部变量,只能在alertSize()之内使用。你的内联脚本试图使用它,但是这个变量不在这个范围内。

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

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?

希望这有助于