如何在没有外部JavaScript的情况下使用自定义HTML代码包装TinyMCE元素
我试图用我的自定义HTML代码包装TinyMCE的一些元素如何在没有外部JavaScript的情况下使用自定义HTML代码包装TinyMCE元素,javascript,html,tinymce,Javascript,Html,Tinymce,我试图用我的自定义HTML代码包装TinyMCE的一些元素 例如,让我们考虑用户想要添加媒体或图像元素,用户只需点击媒体或图像元素图标,就会被要求进入链接,TyNyCE将生成所需的HTML代码。 我想要实现的是用我的自定义代码包装生成的HTML代码。也就是说,我将简单地得到: <div> ... What TinyMCE has generated for the image or media ... </div> ... TinyMCE为图像或媒体生成了什么
例如,让我们考虑用户想要添加媒体或图像元素,用户只需点击媒体或图像元素图标,就会被要求进入链接,TyNyCE将生成所需的HTML代码。 我想要实现的是用我的自定义代码包装生成的HTML代码。也就是说,我将简单地得到:
<div>
... What TinyMCE has generated for the image or media ...
</div>
... TinyMCE为图像或媒体生成了什么。。。
对于Media元素,我尝试使用Media\u url\u resolver
,但这对我不起作用,因为此函数不提供包装默认行为的功能,而只提供重写整个逻辑的功能(这是一个坏主意)
有人能告诉我是否有任何TinyMCE本机解决方案(没有任何自定义的外部JavaScript)?没有任何配置选项可以执行您想要的操作,但您可以在内容设置到编辑器中时收到通知,并在插入内容之前对其进行修改: 关键代码如下:
editor.on('BeforeSetContent', function (e) {
//Look at this object - it tells you a bunch of stuff about the insert activity
//such as was it via paste? Was there selected content in TinyMCE that will be overwritten?
//Using the browser tooling you can inspect the e object and learn a lot about the content that will be set.
console.log(e);
//Then you can modify that content if you want...for example:
if (e.content.startsWith("<a href=")) {
console.log('ADDING CONTENT');
e.content = '<p>BEFORE</p>' + e.content + '<p>AFTER</p>';
}
});
editor.on('BeforeSetContent',函数(e){
//看看这个对象-它告诉你一些关于插入活动的东西
//例如,是否通过粘贴?TinyMCE中是否有选定的内容将被覆盖?
//使用浏览器工具,您可以检查e对象,并了解有关将设置的内容的很多信息。
控制台日志(e);
//然后,如果需要,您可以修改该内容…例如:
if(e.content.startsWith)(“我正在玩类似的事件,但这个例子正是我想要的!非常感谢。