2013-03-21 150 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?

希望這有助於