如何在没有外部JavaScript的情况下使用自定义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为图像或媒体生成了什么

我试图用我的自定义HTML代码包装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)(“我正在玩类似的事件,但这个例子正是我想要的!非常感谢。