2011-07-04 83 views
3

我不知道,但我可能失去了一些東西,我已經試過了幾thigns但他們都最終獲得相同的結果,我要開始拉我的頭髮的javascript「的document.getElementById未定義」

<script type="text/javascript"> 
function set_size() { 
// Get users Screen Res 
var screen_height = screen.height; 
var attribute = "height"; 
var element = "pdfFile"; 

// Take say 200px off the res to accumulate the browser screen useage 
var object_height = screen_height - 200; 

// Write to the height attribute 
document.getElementById[element].getAttribute[attribute].value = object_height; 
document.getElementById['jsoutput'].innerhtml = object_height; 
} 
</script> 

<div class="Contact_list"> 
<a name="contacts"><object id="pdfFile" data="files/contacts/pdf/contacts.pdf" type="application/pdf" width="100%" height="600" style="border: 1px solid;"></object></a> 
<span id="jsoutput"></span> 
</div> 

<script type="text/javascript"> 
set_size(); 
</script> 

[12:13:28.050]的document.getElementById [元件]是未定義@http://localhost/* */index.php頁面=接觸#聯繫人:57

回答

4

這兩種不應該像這樣:

// Write to the height attribute 
document.getElementById[element].getAttribute[attribute].value = object_height; 
document.getElementById['jsoutput'].innerhtml = object_height; 

,但應該是這樣的:

// Write to the height attribute 
document.getElementById(element).style.height = object_height; 
document.getElementById('jsoutput').style.height = object_height; 

的getElementById和的getAttribute是函數,其參數去括號,而不是在括號內。

高度通過設置style.height來設置,而不是在屬性上設置.value。 您通常不會設置<span>標記所在的內聯元素的高度。您可以設置塊元素或嵌入塊元素的高度。所以,你嘗試設置jsoutput對象的高度可能不會達到你想要的。

此外,innerHTML屬性必須大寫爲innerHTML,而不是innerhtml,儘管您無法正確使用該屬性,因此我將其替換爲style.height。

+0

「document.getElementById ['jsoutput']。innerhtml = object_height;」是否需要輸出設置對象的大小,我正在使用它進行調試。我將應用這些其他更改:) – cyclobs

+0

「document.getElementById(element).style.height = object_height;」 不起作用:我得到一個CSS錯誤「[12:47:25.390]解析'height'的值時出錯。 – cyclobs

+0

如果你有正確的地方所有的代碼,它似乎在這裏工作得很好。在這個jsfiddle中看到它:http://jsfiddle.net/jfriend00/SeLry/ – jfriend00

2

的getElementById是一個函數,而不是一個陣列 - 以稱之爲()代替[]圍繞ID

0

的getElementById(元件)not的document.getElementById [元件]`..請確認...

0

您必須使用括號(和),因爲getElementById是一個函數而不是對象。

document.getElementById(element)