1

情况:在 jQuery 对话框中调用 CKEDITOR(这里有很多挑战)。我的具体问题是,当我测试是否存在 CKEDITOR 实例时,总是会抛出错误。

浏览器测试:Firefox 21、IE 9、Safari 5.1.7

错误:错误:TypeError:CKEDITOR.instance 未定义

所有这些测试 CKEDITOR 实例的方法总是抛出一个 javascript 错误:

if(!CKEDITOR.instance['editor']){

如果(CKEDITOR.instance['editor']){

if(!typeof CKEDITOR.instance['editor'] == "undefined"){

if(!typeof(CKEDITOR.instance['editor']) == "undefined"){

if(typeof CKEDITOR.instance['editor'] != "undefined"){

if(typeof CKEDITOR.instance['editor'] !== "undefined"){

if(typeof CKEDITOR.instance['editor'] === "undefined"){

当然,在发表这篇文章之前,我浏览了 StackOverflow。我已经尝试过 StackOverflow 上建议的“typeof”和“undefined”的所有组合。

如果在测试实例是否存在时出错,如何测试对象实例的存在?一个难题!

4

2 回答 2

1

不是

CKEDITOR.instance

但:

CKEDITOR.instances

它总是存在的——没有必要对其进行测试。

于 2013-04-16T14:32:15.653 回答
0

您正在测试错误的对象(或本例中的对象属性)。是未定义的,因此在测试它的一个属性之前instance,您必须首先检查是否已定义。instance

if ( CKEDITOR.instance && CKEDITOR.instance['editor'] ) {

或者如果您想知道何时未定义,

if ( !CKEDITOR.instance || !CKEDITOR.instance['editor'] ) {
于 2013-04-16T14:13:32.263 回答