TinyMCE:焦点改变后无法在Mac上写入特殊字符



我在一些Mac上遇到了这个问题。当编辑器加载时,可以键入所有类型的字符。但是:在将焦点放在页面中的其他文本字段(flash)并返回编辑器后,就不可能再写特殊的字符了。

对于特殊字符,我的意思是像äüáóíõÖÜß("扩展"ASCII)。其他字符也是可能的(ASCII-在127之前)。

任何提示都将不胜感激。如果你有一个很好的想法如何调试这个,或者有一些要调查的提示,这让我得到了回应,它也被接受了。

我做的唯一一件事就是在源代码中的TinyMCE的一个关键侦听器中放一个console.log。查看是否至少检测到按键。事实上,控制台列出了所有按键。但是这些角色不会出现在屏幕上。

控制台输出在出现此问题之前/出现此问题时没有显示任何错误或警告。

可能是什么?也许这根本不是TinyMCE的错?据我在代码中看到的,按键只处理一些退格-撤消等任务,但实际的输入是通过浏览器进行的?->iframe的正文内容可编辑="true"。

另一个可能有用的信息是:我所说的另一个文本字段在Flash应用程序中。这个领域的焦点使得在TinyMCE中写特殊字符变得不可能了。也许字段更改了网页或系统中的字符集或其他内容。。?我该如何查看/调查?

解决方法可以是捕获这些事件并在macOS情况下处理它们:

ed.execCommand('mceInsertContent',false,'uFFFF'); // FFFF stands for the special character coding 

我也遇到过类似的问题,但不完全相同。所以这可能对你有帮助,也可能对你没有帮助。

在我的案例中,用户上传了一个带有Plupload库的文件(通过单击不可见的Flash按钮),然后事件处理程序通过execCommand("mceInsertCommand", ...)将URL插入TinyMCE后,用户根本无法再键入任何字符(受影响的不仅仅是特殊字符)。但是,退格键仍然有效。

在我的Mac上,这个问题只影响Chrome,但不影响Safari或FF。

我的解决方法是暂时隐藏flash对象,通过editor.focus()为编辑器提供焦点,并使用下划线defer调用来重新显示flash对象。

最新更新