gpt4 book ai didi

javascript - 如何检查 textarea 与 CKEDITOR?

转载 作者:行者123 更新时间:2023-12-03 02:12:21 26 4
gpt4 key购买 nike

我需要捕获最后一次聚焦的输入并稍后在其中粘贴一些内容。

我已经设法捕获最后一个聚焦的 HTML 输入字段(在 focusin 事件上使用 jQuery)或 CKEDITOR 编辑器(在 focus 事件上使用 CKEDITOR API)。因为我将最后一个对象存储在一个 var lastFocusedInput 中(jQuery 对象或 CKEDITOR 编辑器对象),现在我需要确定它是 CKEDITOR 还是 jQuery 对象,因为它们有不同的方法在其中粘贴数据.

任何想法如何以比这样的测试更复杂的方式做到这一点:

function isjQueryObject(o)
{
return (o && (o instanceof jQuery || o.constructor.prototype.jquery));
}

function isCKEditorObject(o)
{
return (o && (typeof CKEDITOR !== undefined) && (typeof o.insertHtml !== undefined));
}

于 2018-03-29 编辑

与此同时,由于需要在代码的其他区域重用,我最终进行了如下类型测试。

function TypeTester()
{
var result = function (test)
{
return test ? true : false;
};

// jQuery [object Function]
this.jQuery = function (o)
{
return result(o
&& (o instanceof jQuery || o.constructor.prototype.jquery)
);
};

// CKEDITOR [object Object]
this.CKEDITOR =
{
object: function (o)
{
return result(o
&& o.replaceClass === 'ckeditor'
);
},

instance: function (o)
{
return result(o
&& o.insertHtml !== undefined
&& o.insertText !== undefined
);
},
};
};
var isTypeOf = new TypeTester();

var lastFocusedInput = new Object(
{
object: null,
insert: function (content)
{
if (!this.object) return;

switch (true)
{
case isTypeOf.jQuery(this.object) :
this.object.insertAtCaret(content);
break;

case isTypeOf.CKEDITOR.instance(this.object) :
this.object.insertHtml(content);
break;
}
},
});

最佳答案

正如您在存储时知道对象的类型,然后像这样存储它

var lastFocusedInput= { type:'jQuery', theObject: theObjectToStore};

并像这样访问它

if(lastFocusedInput.type == 'jQuery'){
//get jquery object -> lastFocusedInput.theObject
}else{
//get CKEDITOR object -> lastFocusedInput.theObject
}

或者使用两个容器

如果要存储的对象是 jQuery

var $lastFocusedInput = theObjectToStore;
var CKElastFocusedInput= null;

反之亦然

访问时

if($lastFocusedInput){// use jquery API on object }
else{ // use CKEDITOR API on object }

关于javascript - 如何检查 textarea 与 CKEDITOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49500038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com