我想将onMouseOver和onMouseOut事件添加到TinyMCE中的编辑器实例(通过插件),但它们似乎不受TinyMCE API的支持。具体来说,我希望当元素被鼠标切换为切换“只读”模式(以及可能的其他东西)时出现一个控件。我是否必须自己将代码添加到TinyMCE来执行此操作,还是通过一些非显而易见的路径支持?如果我必须添加代码,是否有一些禁止支持这些事件的事情,这些事件构成了他们不在API中包含它的推理的基础?
为了澄清与下面的响应者具有相同混淆的人的利益,我特别希望将事件附加到由TinyMCE库创建的TinyMCE.Editor实例(例如,该类传递给TinyMCE.init的setup参数中使用的回调。我想做以下
tinyMCE.init({
.
.
.
setup : function(ed) {
TinyMCEReadOnlySetup(ed,true);
ed.onMouseOver.add(ShowButton(ed));
ed.onMouseOut.add(HideButton(ed));
},
.
.
.
});
,但ed(TinyMCE.Editor的一个实例)不支持类似事件的MouseOver.add。
答案 0 :(得分:0)
要在只读和编辑模式之间切换,您可以使用
ed.getDoc().designMode = "Off";
在你自己的插件中。或者,您可以保存编辑器内容并在触发onChange时恢复它。
修改强>
要设置鼠标悬停事件监听器,您可以使用
$('#' + ed.id +'_parent').bind('mouseover',function (evt){
setTimeout("console.log('mouseover')",50);return false;
});
您可以在插件的onInit部分执行此操作。
答案 1 :(得分:0)
好吧,我可以通过创建插件来实现这一点,然后在init属性中添加以下非常hack-y代码:
ed.onInit.add(function(ed){
.
.
.
document.getElementById(ed.id + '_parent').setAttribute('onmouseover',
"tinyMCE.editor_ShowButton('" + ed.id + "');");
document.getElementById(ed.id + '_parent').setAttribute('onmouseout',
"tinyMCE.editor_HideButton('" + ed.id + "');");
//ed.getBody().appendChild(newdiv);
});
这不是最佳解决方案,但它可以完成工作。