2013-01-22 62 views
0

我在運行下面的代碼時遇到了開發人員屏幕中的錯誤,當您調用php頁面時,或者javascript想要在該消息旁放置圖標時。在IE瀏覽器中工作正常,但在Chrome和其他瀏覽器得到:未捕獲的類型錯誤:對象不是函數(匿名函數)

Uncaught TypeError: object is not a function jsfunctions.php:92 
    dowarnerr jsfunctions.php:92 
    AddIcons jsfunctions.php:180 
    (anonymous function) 

任何想法這是什麼,爲什麼?

------------------------------------ jsfunctions.php ------- -----------------

function AddIcons() 
{ 
    if (typeof(error)=='object') 
{ 
    dowarnerr(error,'Error'); 
} 
if (typeof(warning)=='object') 
{ 
dowarnerr(warning,'Warning'); 
} 
} 
function doerror(err, etype) 
{ 
    msg = err.innerHTML; 
    if (etype=='Error') { 
    err.innerHTML = '<img id=icon src=/images/err.gif>' + msg; 
         } 
    else { 
    err.innerHTML = '<img id=icon src=/images/warning.gif>' + msg; 
     } 
} 





function dowarnerr(obj, etype) 
{ 
    if(typeof(obj.innerHTML) == 'string') { 
    doerror(obj, etype); 
    } 
    else 
    { 
    for (i = 0; i < obj.length; i++) { 
    doerror(obj(i), etype); 
    } 
    } 
} 





------------------------------------menu_config.php---------------------------------- 



<HEAD> 
    <LINK REL="StyleSheet" TYPE="text/css" HREF="/styles.php"></LINK> 
    <script language="JavaScript" src="/scripts/jsfunctions.php"></script> 
</HEAD> 

<SCRIPT LANGUAGE="javascript"> 
AddIcons(); 
</SCRIPT> 
+0

嗯,顯然'error'(或'warning')傳遞給'dowarnerr'在'AddIcons'不是一個函數,但一個對象,因此在''OBJ(我)' dowarnerr'拋出一個錯誤。你只能調用函數,而不能調用對象。 –

回答

0

如果傳入dowarnerr的第一個參數()函數是一個對象,你不能使用for (i = 0; i < obj.length; i++)聲明。你必須使用的foreach:

for (var propName in obj) { 
    if (obj.hasOwnProperty(propName)) { 
    doerror(obj[propName], etype); 
    } 
} 
相關問題