FCKeditorAPI未定义,调用FCKeditorAPI时出错
JavaScript的加载,调用次序问题,导致调用未加载的函数发生错误。
这是一个低级错误。所谓低级错误,指那些非技术难题,本来可以避免,却由于疏忽大意而造成的错误。比如说写错了函数名,又比如说本文写的这个错误。
出错原因:在函数定义之前调用函数。
JavaScript的执行是线性的,根据文档加载的先后顺序依次执行。文档加载完毕之后,可以随意调用文档中有定义的任一函数;文档加载完毕之前,只能调用前面已经加载的函数。
像下面这个例子是会出错的!
throwError('hello, error!');
function throwError(s){alert(s);}
因为下面的函数throwError还没有加载到,所以不能提前调用。解决的方法很简单,就是把函数放到调用的前面:
“FCKeditorAPI未定义”这个错误也是同样的道理。使用时,比如说在asp.net中,使用ClientScript.RegisterScriptBlock()函数对其进行调用,结果客户端加载页面时,会先加载调用的JavaScript代码。而定义FCKeditorAPI的代码却放在后面加载。这样错误就产生了。
解决方法有两种,一是确保调用在函数定义之后;二是在调用前判断页面是否加载完毕,加载完毕了再调用。如jQuery的方式:
jQuery(function($){alert(load ready!);}