Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TinyMCE 3-触发模糊事件的textarea id_Tinymce_Tinymce 3 - Fatal编程技术网

TinyMCE 3-触发模糊事件的textarea id

TinyMCE 3-触发模糊事件的textarea id,tinymce,tinymce-3,Tinymce,Tinymce 3,当TinyMCE编辑器出现模糊时,我试图找到触发模糊事件的textarea的元素id(或名称)。我还需要获得焦点的元素的元素id(或名称),但该部分应该类似 我越来越接近于能够获得tinymce编辑器的iframe id,但我只在Chrome中使用了它,我相信有更好的方法可以做到这一点。我需要它来跨不同的浏览器和设备工作 例如,下面的代码在Chrome中返回iframe id,这是可以的,因为iframe id只在我的textarea元素id后面附加了一个后缀“_ifr”。我更喜欢textare

当TinyMCE编辑器出现模糊时,我试图找到触发模糊事件的textarea的元素id(或名称)。我还需要获得焦点的元素的元素id(或名称),但该部分应该类似

我越来越接近于能够获得tinymce编辑器的iframe id,但我只在Chrome中使用了它,我相信有更好的方法可以做到这一点。我需要它来跨不同的浏览器和设备工作

例如,下面的代码在Chrome中返回iframe id,这是可以的,因为iframe id只在我的textarea元素id后面附加了一个后缀“_ifr”。我更喜欢textarea的元素id,但如果我需要删除iframe后缀也可以

编辑:我想如果我添加一个完整的TinyMCE小提琴(而不是下面的代码)会更清楚:

设置:功能(ed){
ed.onInit.add(功能(ed){
ed.pasteAsPlainText=true;
/*开始:添加此选项以处理JS模糊事件*/
/*示例修改自:http://tehhosh.blogspot.com/2012/06/setting-focus-and-blur-event-for.html */
var dom=ed.dom,
doc=ed.getDoc(),
el=doc.content_可编辑?ed.getBody():(tinymce.isGecko?doc:ed.getWin());
tinymce.dom.Event.add(el,'blur',函数(e){
//console.log('blur');
var event=e | | window.event;
var target=event.target | | event.src元素;
console.log(事件);
控制台日志(目标);
log(target.frameElement.id);
log('上面输出触发模糊的以下iframe id(但仅在Chrome中):'+'Idrimeravista_ifr');
})
tinymce.dom.Event.add(el,'focus',函数(e){
//console.log('focus');
})
/*结束:添加此项以处理JS模糊事件*/
});
}
简化 TinyMCE在对象上提供一个属性,用于获取编辑器实例ID:

检查
doc.content\u editable
tinyMCE.isGecko
似乎也有些过分,因为它已经允许跨浏览器兼容的事件绑定(我检查了IE8-11以及最新版本的Firefox和Chrome)

注意:我实际上发现,在Internet Explorer中,逻辑未能正确地将
ed.getBody()
分配给
el
,因此它无法实现您所需的跨浏览器功能

尝试以下简化的事件绑定:

tinyMCE.init({
模式:“文本区域”,
设置:功能(ed){
ed.onInit.add(功能(ed){
/*onBlur*/
tinymce.dom.Event.add(ed.getBody(),'blur',函数(e){
log('ID为“+ed.ID+”的编辑器有模糊');
});
/*聚焦*/
tinymce.dom.Event.add(ed.getBody(),'focus',函数(e){
log('ID为“+ed.ID+”的编辑器具有焦点');
});
});
}
});


旁白:你的小提琴没有正确初始化编辑器,因为插件加载失败。由于本例中不需要插件,因此我将其从小提琴中删除以使其正常工作。

。。。你找到解决办法了吗?