在 Insert/Edit Link 对话框中插入自定义按钮?
Insert custom button on Insert/Edit Link dialog?
我想在 tinymce v5.Insert/Edit Link dialog/popup 上添加一个自定义按钮。
我只得到了设置选项的这段代码,我在其中调用了一个函数。
function tinyMceEditLink(editor) {
console.log("tinyMceEditLink");
editor.on("click", function(e) {
console.log("this click");
});
}
我会第一个承认这有点老套,但你可以试试:
function tinyMceEditLink(editor) {
editor.windowManager.oldOpen = editor.windowManager.open; // save for later
editor.windowManager.open = function (t, r) { // replace with our own function
var modal = this.oldOpen.apply(this, [t, r]); // call original
if (t.title === "Insert/Edit Link") {
$('.tox-dialog__footer-end').append(
'<button title="Custom button" type="button" data-alloy-tabstop="true" tabindex="-1" class="tox-button" id="custom_button">Custom button</button>'
);
$('#custom_button').on('click', function () {
//Replace this with your custom function
console.log('Running custom function')
});
}
return modal; // Template plugin is dependent on this return value
};
}
这将为您提供以下结果:
设置:
tinymce.init({
selector: "#mytextarea", // change this value according to your HTML
plugins: "link",
menubar: "insert",
toolbar: "link",
setup: function(editor) {
// Register our custom button callback function
editor.on('init',function(e) {
tinyMceEditLink(editor);
});
// Register some other event callbacks...
editor.on('click', function (e) {
console.log('Editor was clicked');
});
editor.on('keyup', function (e) {
console.log('Someone typed something');
});
}
});
提示:
- 如果您希望您的按钮位于页脚左侧,您可以将
$('.tox-dialog__footer-end')...
替换为 $('.tox-dialog__footer-start')...
。
- 这目前适用于默认皮肤,更改
.tox-dialog__footer
class 可能会破坏它。
- 任何更改标题的库更新 "Insert/Edit Link" 都会破坏此设置。
- 以上示例需要 jQuery 才能工作。
- 这是一个最低限度的例子。使用配置指南自定义工具栏、设置事件等。
我想在 tinymce v5.Insert/Edit Link dialog/popup 上添加一个自定义按钮。
我只得到了设置选项的这段代码,我在其中调用了一个函数。
function tinyMceEditLink(editor) {
console.log("tinyMceEditLink");
editor.on("click", function(e) {
console.log("this click");
});
}
我会第一个承认这有点老套,但你可以试试:
function tinyMceEditLink(editor) {
editor.windowManager.oldOpen = editor.windowManager.open; // save for later
editor.windowManager.open = function (t, r) { // replace with our own function
var modal = this.oldOpen.apply(this, [t, r]); // call original
if (t.title === "Insert/Edit Link") {
$('.tox-dialog__footer-end').append(
'<button title="Custom button" type="button" data-alloy-tabstop="true" tabindex="-1" class="tox-button" id="custom_button">Custom button</button>'
);
$('#custom_button').on('click', function () {
//Replace this with your custom function
console.log('Running custom function')
});
}
return modal; // Template plugin is dependent on this return value
};
}
这将为您提供以下结果:
设置:
tinymce.init({
selector: "#mytextarea", // change this value according to your HTML
plugins: "link",
menubar: "insert",
toolbar: "link",
setup: function(editor) {
// Register our custom button callback function
editor.on('init',function(e) {
tinyMceEditLink(editor);
});
// Register some other event callbacks...
editor.on('click', function (e) {
console.log('Editor was clicked');
});
editor.on('keyup', function (e) {
console.log('Someone typed something');
});
}
});
提示:
- 如果您希望您的按钮位于页脚左侧,您可以将
$('.tox-dialog__footer-end')...
替换为$('.tox-dialog__footer-start')...
。 - 这目前适用于默认皮肤,更改
.tox-dialog__footer
class 可能会破坏它。 - 任何更改标题的库更新 "Insert/Edit Link" 都会破坏此设置。
- 以上示例需要 jQuery 才能工作。
- 这是一个最低限度的例子。使用配置指南自定义工具栏、设置事件等。