Php 未捕获类型错误:对象不是函数(匿名函数)
当运行下面的代码时,我在开发人员屏幕中遇到一个错误,当调用php页面时,或者javascript应该在消息旁边放置一个图标。在IE中,它工作正常,但在Chrome和其他浏览器中:Php 未捕获类型错误:对象不是函数(匿名函数),php,javascript,jquery,google-chrome,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) 你知道这是什么,
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>
函数AddIcons()
{
if(typeof(error)='object')
{
道瓦内尔(错误,'error');
}
如果(类型(警告)=“对象”)
{
道瓦内尔(警告,'warning');
}
}
函数doerror(err,etype)
{
msg=err.innerHTML;
if(etype=='Error'){
err.innerHTML=''+msg;
}
否则{
err.innerHTML=''+msg;
}
}
函数dowarnerr(obj,etype)
{
if(typeof(obj.innerHTML)='string'){
doerror(obj,etype);
}
其他的
{
对于(i=0;i
如果传递到dowarnerr()函数中的第一个参数是一个对象,则不能将用于(i=0;i
语句。您必须使用foreach:
for (var propName in obj) {
if (obj.hasOwnProperty(propName)) {
doerror(obj[propName], etype);
}
}
显然,在
AddIcons
中传递给dowarnerr
的error
(或warning
)不是一个函数而是一个对象,因此dowarnerr
中的obj(i)
抛出一个错误。只能调用函数,不能调用对象。