为“添加颜色框”;透明的;关于TinyMCE-4颜色选择器
我想使用TinyMCE颜色选择器的一个选项,选择透明作为颜色,这样一个字符(一个“项目符号”)将仍然存在并占用空间,但如果它的颜色是透明的,它将不可见 有一个“X”框选项显示“无颜色”,但这似乎使颜色变黑,而不是透明 有人知道如何将透明颜色选项添加到此颜色选择器,或者甚至使“X”框实现透明而不是黑色吗为“添加颜色框”;透明的;关于TinyMCE-4颜色选择器,tinymce-4,Tinymce 4,我想使用TinyMCE颜色选择器的一个选项,选择透明作为颜色,这样一个字符(一个“项目符号”)将仍然存在并占用空间,但如果它的颜色是透明的,它将不可见 有一个“X”框选项显示“无颜色”,但这似乎使颜色变黑,而不是透明 有人知道如何将透明颜色选项添加到此颜色选择器,或者甚至使“X”框实现透明而不是黑色吗 谢谢你的建议。我相信我能做到这一点,我做了一些快速测试,它似乎运行良好 我获得了最新版本的TinyMCE(4.1.10_dev)来访问textcolor插件的非小型javascript。有以下说明
谢谢你的建议。我相信我能做到这一点,我做了一些快速测试,它似乎运行良好 我获得了最新版本的TinyMCE(4.1.10_dev)来访问textcolor插件的非小型javascript。有以下说明:
if (value == 'transparent') {
resetColor();
} else {
selectColor(value);
}
这里发生了什么?当您选择一种颜色时,它会运行selectColor,它会将所选文本与所选颜色包装在一个范围内。但是,当您选择“无颜色”时,它会删除此颜色范围(这就是为什么它会返回为默认颜色的黑色),而不是将其设置为“透明”
因此,如果您这样做:
//if (value == 'transparent') {
// resetColor();
//} else {
selectColor(value);
//}
它不会删除跨度,而是将其改为“透明”
一件重要的事情是tinyMCE会自动获取插件脚本,因此它只适用于缩小版本,因此在进行这些更改后,您必须将脚本缩小到plugin.min.js
,并将其放在textcolro插件的文件夹中,覆盖其中的一个
我希望它能有所帮助。colorpicker中的
×
按钮会删除任何自定义颜色,但不会添加不透明度为零的颜色
正如您在查看时所看到的,或者在附带的colorpicker插件中不支持rgba()或不透明性。不幸的是,只有rgb()和十六进制
您可能需要添加该功能。有许多备选方案,例如:
tinymce.init({
selector: 'textarea',
plugins: 'nocolour',
toolbar: 'nocolour',
external_plugins: {
"nocolour": "url_to_your/nocolour.js"
}
});
和nocolour.js:
tinymce.PluginManager.add('nocolour', function(editor, url) {
// Add a button that opens a window
editor.addButton('nocolour', {
text: 'Remove Colour',
icon: false,
onclick: function() {
editor.undoManager.transact(function() {
editor.focus();
// Here is where you add code to remove the colour
editor.nodeChanged();
});
}
});
});
拉斐尔的解决方案对我有效。我只是想进一步记录它,并展示TinyMCE 4.1.7的外观 单击textcolor网格中的“X”时,“value”变量将变为“透明”,而不是colorMap中的十六进制值 textcolor插件中的相关代码为:
value = e.target.getAttribute('data-mce-color'); // the hex color from the colorMap square that was clicked. "transparent" if X was clicked
if (value) {
if (this.lastId) {
document.getElementById(this.lastId).setAttribute('aria-selected', false);
}
e.target.setAttribute('aria-selected', true);
this.lastId = e.target.id;
// if (value == 'transparent') { // occurs if you select the "X" square
// removeFormat(buttonCtrl.settings.format);
// buttonCtrl.hidePanel();
// return;
// }
selectColor(value);
我注释掉的五行删除了所选文本的格式,留下了黑色,这似乎没有什么用处。如果想要文本为黑色,可以在颜色映射中选择黑色正方形。使用value=“transparent”选择color(value)将transparent设置为颜色。控制文本颜色的是textcolor插件,而不是colorpicker插件。哦,对不起,你写的是colorpicker插件,所以我以为你指的就是这个插件。不过,这是一个警告,如果您不编写自己的插件并编辑捆绑包,那么每当tinymce更新可用时,您都需要进行这些更改。考虑把这个模块克隆到你自己的一个,至少从长远来看拯救你自己。很酷,你找到了一个解决方案。是的,我写这个问题的时候不知道有一个单独的textcolor插件。谢谢你的警告,谢谢!这确实有效!我正在运行TinyMCE 4.1.7,它与您的有点不同,因此我将我所做的放在一个单独的答案中,并添加了一些注释。我给了你赏金分数。@Steve我很高兴这有帮助;