- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发自己的插件以添加到tinyMCE v4插件列表中,到目前为止,我已经达到在菜单中添加一个按钮并在单击它时打开弹出窗口的目的,然后我就可以用数据填写表单了它添加到tinyMCE编辑器中,但是当我想编辑这些信息时遇到一些问题,我尝试添加一些脚本但仍然不起作用,
这是我的源代码:
注1:onclick用于添加新按钮
注2:onpostrender适用于编辑按钮
tinymce.PluginManager.add('buttonlink', function(editor, url) {
// Add a button that opens a window
editor.addButton('buttonlink', {
text: 'Insert Button',
tooltip: "Insert/edit Button link",
icon: false,
onclick: function() {
// Open window
editor.windowManager.open({
title: 'Button',
body: [
{type: 'textbox', name: 'title', label: 'Title'},
{type: 'textbox', name: 'link', label: 'Link'},
{type: 'listbox', name: 'colorBtn', label: 'Button Color',values:
[
{value:"008000", text:"Green"},
{value:"0000FF", text:"Blue"},
{value:"000000", text:"Black"},
{value:"993300", text:"Burnt orange"},
{value:"333300", text:"Dark olive"},
{value:"003300", text:"Dark green"},
{value:"003366", text:"Dark azure"},
{value:"000080", text:"Navy Blue"},
{value:"333399", text:"Indigo"},
{value:"333333", text:"Very dark gray"},
{value:"800000", text:"Maroon"},
{value:"FF6600", text:"Orange"},
{value:"808000", text:"Olive"},
{value:"008080", text:"Teal"},
{value:"666699", text:"Grayish blue"},
{value:"808080", text:"Gray"},
{value:"FF0000", text:"Red"},
{value:"FF9900", text:"Amber"},
{value:"99CC00", text:"Yellow green"},
{value:"339966", text:"Sea green"},
{value:"33CCCC", text:"Turquoise"},
{value:"3366FF", text:"Royal blue"},
{value:"800080", text:"Purple"},
{value:"999999", text:"Medium gray"},
{value:"FF00FF", text:"Magenta"},
{value:"FFCC00", text:"Gold"},
{value:"FFFF00", text:"Yellow"},
{value:"00FF00", text:"Lime"},
{value:"00FFFF", text:"Aqua"},
{value:"00CCFF", text:"Sky blue"},
{value:"993366", text:"Red violet"},
{value:"FFFFFF", text:"White"},
{value:"FF99CC", text:"Pink"},
{value:"FFCC99", text:"Peach"},
{value:"FFFF99", text:"Light yellow"},
{value:"CCFFCC", text:"Pale green"},
{value:"CCFFFF", text:"Pale cyan"},
{value:"99CCFF", text:"Light sky blue"},
{value:"CC99FF", text:"Plum"}
]
},
{type: 'listbox', name: 'colorText', label: 'Text Color',values:
[
{value:"FFFFFF", text:"White"},
{value:"000000", text:"Black"},
{value:"993300", text:"Burnt orange"},
{value:"333300", text:"Dark olive"},
{value:"003300", text:"Dark green"},
{value:"003366", text:"Dark azure"},
{value:"000080", text:"Navy Blue"},
{value:"333399", text:"Indigo"},
{value:"333333", text:"Very dark gray"},
{value:"800000", text:"Maroon"},
{value:"FF6600", text:"Orange"},
{value:"808000", text:"Olive"},
{value:"008000", text:"Green"},
{value:"008080", text:"Teal"},
{value:"0000FF", text:"Blue"},
{value:"666699", text:"Grayish blue"},
{value:"808080", text:"Gray"},
{value:"FF0000", text:"Red"},
{value:"FF9900", text:"Amber"},
{value:"99CC00", text:"Yellow green"},
{value:"339966", text:"Sea green"},
{value:"33CCCC", text:"Turquoise"},
{value:"3366FF", text:"Royal blue"},
{value:"800080", text:"Purple"},
{value:"999999", text:"Medium gray"},
{value:"FF00FF", text:"Magenta"},
{value:"FFCC00", text:"Gold"},
{value:"FFFF00", text:"Yellow"},
{value:"00FF00", text:"Lime"},
{value:"00FFFF", text:"Aqua"},
{value:"00CCFF", text:"Sky blue"},
{value:"993366", text:"Red violet"},
{value:"FF99CC", text:"Pink"},
{value:"FFCC99", text:"Peach"},
{value:"FFFF99", text:"Light yellow"},
{value:"CCFFCC", text:"Pale green"},
{value:"CCFFFF", text:"Pale cyan"},
{value:"99CCFF", text:"Light sky blue"},
{value:"CC99FF", text:"Plum"}
]
},
],
onsubmit: function(e) {
// Insert content when the window form is submitted
if(e.data.title != null && e.data.title != "") {
editor.insertContent('<a href="' + e.data.link + '" target="_blank" id="btn-link-plugin" class="btn" style="color: #' + e.data.colorText + '; background: #' + e.data.colorBtn + '">' + e.data.title + '</a>');
}
}
});
},
onpostrender: function (buttonApi) {
var btn = this;
var editorEventCallback = function (e) {
var IDElement = e.element.getAttribute('id');
if (btn._id == "mceu_22" && IDElement == "btn-link-plugin") {
var link = e.element.getAttribute('data-mce-href');
var style = e.element.getAttribute('style');
var text = e.element.text;
var res = style.split(";");
var colorStyle = res[0].split(":");
var backgroundStyle = res[1].split(":");
colorStyle[1] = colorStyle[1].replace(/\s+/g, '');
backgroundStyle[1] = backgroundStyle[1].replace(/\s+/g, '');
var colorTxt = colorStyle[1].substr(1);
var backgroundTxt = backgroundStyle[1].substr(1);
editor.windowManager.open({
title: 'Button',
body: [
{type: 'textbox', name: 'title', label: 'Title', value: text},
{type: 'textbox', name: 'link', label: 'Link', value: link},
{
type: 'listbox', name: 'colorBtn', label: 'Button Color', values:
[
{value: "008000", text: "Green"},
{value: "0000FF", text: "Blue"},
{value: "000000", text: "Black"},
],
onPostRender: function() {
this.value(backgroundTxt);
}
},
{
type: 'listbox', name: 'colorText', label: 'Text Color', values:
[
{value: "FFFFFF", text: "White"},
{value: "000000", text: "Black"},
{value: "993300", text: "Burnt orange"},
{value: "333300", text: "Dark olive"},
],
onPostRender: function() {
this.value(colorTxt);
}
},
],
onsubmit: function (e) {
// Insert content when the window form is submitted
if (e.data.title != null && e.data.title != "") {
editor.insertContent('<a href="' + e.data.link + '" target="_blank" id="btn-link-plugin" class="btn" style="color: #' + e.data.colorText + '; background: #' + e.data.colorBtn + '">' + e.data.title + '</a>');
editor.off('NodeChange', editorEventCallback);
}
}
});
}
};
editor.on('NodeChange', editorEventCallback);
return function (buttonApi) {
console.log("off");
editor.off('NodeChange', editorEventCallback);
}
}
});
return {
getMetadata: function () {
return {
name: "Button Link plugin",
url: "https://capoffshore.com"
};
}
};
});
这是用于创建新按钮的弹出窗口:
最佳答案
我用这段代码解决了问题:
tinymce.PluginManager.add('buttonlink', function(editor, url) {
// Add a button that opens a window
var params = [];
editor.addButton('buttonlink', {
text: 'Insert Button',
tooltip: "Insert/edit Button link",
icon: false,
onclick: function(e) {
// Open window
var btn = this;
var text = "";
var link = "";
var backgroundTxt = "0000FF";
var colorTxt = "FFFFFF";
if (typeof params['text'] !== 'undefined') {
text = params['text'];
}
if (typeof params['link'] !== 'undefined') {
link = params['link'];
}
if (typeof params['backgroundTxt'] !== 'undefined') {
backgroundTxt = params['backgroundTxt'];
}
if (typeof params['colorTxt'] !== 'undefined') {
colorTxt = params['colorTxt'];
}
editor.windowManager.open({
title: 'Button',
body: [
{type: 'textbox', name: 'title', label: 'Title', value: text},
{type: 'textbox', name: 'link', label: 'Link', value: link},
{type: 'listbox', name: 'colorBtn', label: 'Button Color',values:
[
{value:"0000FF", text:"Blue"},
{value:"008000", text:"Green"}
],
onPostRender: function() {
this.value(backgroundTxt);
}
},
{type: 'listbox', name: 'colorText', label: 'Text Color',values:
[
{value:"FFFFFF", text:"White"},
{value:"000000", text:"Black"}
],
onPostRender: function() {
this.value(colorTxt);
}
},
],
onsubmit: function(e) {
// Insert content when the window form is submitted
if(e.data.title != null && e.data.title != "") {
var link = e.data.link;
var title = e.data.title;
var colorText = e.data.colorText;
var colorBtn = e.data.colorBtn;
if (e.data.link == null || e.data.link == "" || typeof e.data.link === 'undefined') {
link = "#";
}
tinymce.activeEditor.dom.remove(tinymce.activeEditor.dom.get("btn-link-plugin"));
editor.insertContent('<a href="' + link+ '" target="_blank" id="btn-link-plugin" class="btn" style="color: #' + colorText + '; background: #' + colorBtn + '">' + title + '</a>');
}
}
});
},
onpostrender: function (buttonApi) {
var btn = this;
var editorEventCallback = function (e) {
var IDElement = e.element.getAttribute('id');
if (btn._id == "mceu_22" && IDElement == "btn-link-plugin") {
btn.active(true);
var link = e.element.getAttribute('data-mce-href');
var style = e.element.getAttribute('style');
var text = e.element.text;
var res = style.split(";");
var colorStyle = res[0].split(":");
var backgroundStyle = res[1].split(":");
colorStyle[1] = colorStyle[1].replace(/\s+/g, '');
backgroundStyle[1] = backgroundStyle[1].replace(/\s+/g, '');
var colorTxt = colorStyle[1].substr(1);
var backgroundTxt = backgroundStyle[1].substr(1);
params['link'] = link;
params['text'] = text;
params['colorTxt'] = colorTxt;
params['backgroundTxt'] = backgroundTxt;
}
};
editor.on('NodeChange', editorEventCallback);
}
});
return {
getMetadata: function () {
return {
name: "Button Link plugin",
url: "https://capoffshore.com"
};
}
};
});
关于javascript - 为 Tinymce 添加插入按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707016/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!