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() 関数に渡される最初の引数がオブジェクトの場合、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 に答える