创建Tumblr帖子并使用HTML编辑器选项时,当我向元素添加特定的HTML属性时,TinyMCE富文本编辑器几乎可以删除所有内容。
即。这样:
<span class="something" data-random="foobar">
成为这个:
<span class="something">
并且不受影响:
<span class="something" title="foobar">
我可以1)禁用此清理(这是荒谬的,至少是当前如何实现)或2)获取所有有效属性的列表,以便我可以选择最佳的语义选择?
答案 0 :(得分:10)
这也让我很伤心。并且搜索谷歌任何tumblr开发帮助比“如何编辑文本颜色”更复杂,oy vey。我不希望任何人。
Tumblr用户无法控制运行控制面板的html或js,因此无法添加任何改变TinyMCE配置的文件。但你可以把它关掉。在Tumblr settings的信息中心标签中,您会找到文字编辑器部分。选择普通html或Markdown将停用TinyMCE,并允许您将表单,数据属性和任何非白名单html发布到您的内心。
答案 1 :(得分:0)
1)可以使用以下tinymce init参数cleanup:false,
2)有效的html elmements的默认定义可以在这里找到: http://www.tinymce.com/wiki.php/Configuration:valid_elements
为了将data-random
作为span的属性,您需要设置valid_children init parameter,如下所示
valid_children: "body[p|ol|ul|hr]" +
",span[a|b|i|u|sup|sub|img|data-random|#text]" +
",a[span|b|i|u|sup|sub|img|#text]", //...
答案 2 :(得分:0)
使用Markdown听起来是一个不错的选择,但我已经在某处看到嵌入式iframe存在问题。如果它对你有用,那就太蓬松了。我还没有测试过它。
但是,如果你不想放弃TinyMCE,你可以做的是以下几点。
tinymce.activeEditor.schema.setValidElements('*[*]')
这告诉活动编辑器现在所有元素都是有效的。
不幸的是,只要你关闭并重新打开编辑窗口,新启动的编辑器就会再次删除它们,所以我写了一个小Greasemonkey脚本,在编辑器初始化时自动设置valid_elements。
// ==UserScript==
// @name Lift TinyMCE tag restrictions
// @namespace http://claviger.net
// @include *.tumblr.com/*
// @version 1
// @grant none
// ==/UserScript==
if (typeof tinyMCE !== 'undefined') {
tinyMCE.onAddEditor.add(function(mgr, ed) {
ed.settings.valid_elements = '*[*]';
});
}
它对我来说效果很好,但我认为在极少数情况下,Greasemonkey脚本和TinyMCE的实际初始化之间会出现竞争条件。我认为后者有时必须在第一次之前运行并且阻止我的小黑客。但是,在我重新加载页面的最后二十次左右没有发生过,如果它发生了,只需重新加载而不保存。 (也许有人知道如何避免这种情况?)
顺便说一句,class
属性似乎没有被剥离,所以作为另一种选择,您可以在博客的主题中定义类似.alignleft
的内容并将其用于图像。然后它在TinyMCE中看起来不会很多,但访客或博客会看到漂亮的版本。