2017-04-02 92 views
-2

時「無法讀取屬性‘長度’的未定義」我收到以下錯誤,當我點擊我的刷新按鈕:調用函數

caught TypeError: Cannot read property 'length' of undefined 
at getRandomImage (index.html:85) 
at HTMLInputElement.onclick (index.html:11) 

看到這個片斷:

var myArray = new Array(); 
 

 
getRandomImage(myArray, ""); 
 

 
function getRandomImage(imgAr, path) { 
 
    path = path || 'C:/Users/Owen/Desktop/1-800MemeLine-master/memes/'; // default path here 
 
    var num = Math.floor(Math.random() * imgAr.length); 
 
    var img = imgAr[ num ]; 
 
    var imgStr = '<img src="' + path + img + '" alt = "">'; 
 
    document.write(imgStr); document.close(); 
 
}
<form> 
 
    <INPUT TYPE="button" onClick="getRandomImage()" VALUE="More MEME plz"> 
 
    </INPUT> 
 
</form>

它與刷新頁面的按鈕正常工作,但我的網站上的大多數人都有糟糕的互聯網,這需要很長時間來重新加載頁面,所以只加載e圖像而不是背景和文字以及不必要的東西。

鏈接到GitHub庫:https://github.com/odude102/1-800MemeLine/blob/master/index.html

+1

在'onClick',你打電話'getRandomImage()'沒有任何參數,因此函數中的'imgAr'是未定義的,然後在嘗試讀取未定義的長度時出現TypeError。 –

+0

你能否提供一些演示代碼o不明白你在說什麼我將如何定義imgAr –

+0

你是說我應該做的getRandomImage(imgAr) –

回答

0

這是不是最好的解決辦法,但解決問題的方法:

var myArray = new Array(); 
var path = 'C:/Users/Owen/Desktop/1-800MemeLine-master/memes/'; 
getRandomImage(); 

function getRandomImage() { 
    var num = Math.floor(Math.random() * myArray.length); 
    var img = myArray[ num ]; 
    var imgStr = '<img src="' + path + img + '" alt = "">'; 
    document.write(imgStr); 
    document.close(); 
} 
+0

它刪除背景和圖像切換按鈕有沒有辦法把它放在iframe或其他東西 –