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>
4

1 回答 1

0

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

for (var propName in obj) {
  if (obj.hasOwnProperty(propName)) {
    doerror(obj[propName], etype);
  }
}
于 2013-01-23T08:11:27.820 回答