未捕获的TypeError:对象不是函数(匿名函数)

时间:2013-01-22 11:58:32

标签: php javascript jquery google-chrome

我在开发人员屏幕上运行下面的代码时遇到错误,当你打电话时在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>

1 个答案:

答案 0 :(得分:0)

如果传递给dowarnerr()函数的第一个arg是一个对象,则不能使用for (i = 0; i < obj.length; i++)语句。你必须使用foreach:

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