在TinyMCE编辑器中,我想添加一个有效的元素属性,即HTML5音频和视频属性"controlList“。这是一个实验性的属性,但在Chrome中受支持,我们可以使用它。例如,我们希望在TinyMCE中验证以下代码:
<p>
<audio controls="controls" controlsList="nodownload">
<source src="some.mp3" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
</p>
现在‘controlsList=’nodownload‘’没有被识别和删除。
Tiny MCE的文档显示,可以使用tinyMCE.init (https://www.tiny.cloud/docs/configure/content-filtering/#valid_elements)添加自定义标记和属性。但是,我已经查看了2sxc的源代码,我不太清楚在2sxc的TinyMCE实现中实现这一点的最佳方式。
一种可能是文件\dist\sxc-edit\sxc-edit.js (2sxc 9.14)的2045行。在这里,我将标记&属性添加到现有的validateAlso中:
validateAlso: '@[class]' // allow classes on all elements,
+ ',i' // allow i elements (allows icon-font tags like <i class="fa fa-...">)
+ ",hr[sxc|guid]" // experimental: allow inline content-blocks
+ ",audio[controlsList]"
+ ",video[controlsList]"
然而,这并没有在我的测试服务器上产生预期的效果,而且我不喜欢修改源代码的想法,因为我的更改将被我应用的下一个补丁覆盖。
这样做的正确方法是什么?
发布于 2018-12-11 04:16:50
目前为止,tinyMCE是不可配置的。原因是我们正在使用Angular 7迁移到一个全新的UI实现,并且我们不想引入更多的功能来迁移:)
如果你真的想这样做,我建议你使用输入类型"string- wysiwyg“的代码来创建你自己的-让我们称之为"string-wysiswyg-withfeatures”,并将它注册为输入类型(有一些关于这方面的博客)-然后配置你的字段来使用那个wysiwyg。
发布于 2019-01-05 00:06:02
这里有一个解决方法,允许将自定义属性添加到HTML标记中。注意:此解决方案适用于我们对HTML5音频/视频标签的一次性需求,但可能不适用于所有人。
首先,我们将id "my-player“添加到我们的音频标签中。
<audio id="my-player" controls="controls">
<source src="some.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
然后我们添加了一个脚本,它使用DNN Page Settings > Advanced > SEO > Page Header Tags插入所需的属性:
<script>
$( document ).ready(function() {
$('#my-player').attr("controlsList", "nodownload");
});
</script>
在我们的例子中,这个javascript属性插入达到了预期的效果。
https://stackoverflow.com/questions/53545886
复制相似问题