我正在尝试编写一个tinymce插件,所以我查看了http://www.tinymce.com/上的“创建插件”教程。插入和替换内容没有问题,一切正常。
现在我想在更改列表框的值后自动更改文本框的值。例如,在更改listbox元素之后,应将活动元素的值写入上面的文本框。我该如何访问这个元素?
tinymce.PluginManager.add('myexample', function(editor, url) {
// Add a button that opens a window
editor.addButton('myexample',
{
text: 'Example',
onclick: function()
{
// Open window
editor.windowManager.open({
title: 'Example Plugin',
body: [
// Text
{type: 'textbox', name: 'title', label: 'Text', value: 'temp'},
// Listbox
{type: 'listbox', name: 'test', label: 'Ziel',
'values':
[
{text: 'Eins', value: '1'},
{text: 'Zwei', value: '2'}
],
onselect: function(v)
{
console.log(this.value());
// CHANGE THE VALUE OF THE TEXTBOX ...
// ????
}
}
],
onsubmit: function(e)
{
console.log(e.data.title, e.data.test);
}
});
}
});
});
答案 0 :(得分:2)
我知道这是一个古老的问题,但我遇到了同样的问题,我在另一个论坛中找到了this answer,以挽救我的一天。
执行此操作的标准方法是将弹出窗口保存在变量中:
var win = editor.windowManager.open({ //etc
然后访问元素:
win.find('#text'); // where text is the name specified
我希望将来可以帮助其他人。
答案 1 :(得分:-2)
现在我找到了解决方案。最好的方法是不使用内部表单设计器。您可以将IFrame与外部html页面一起使用,然后就可以使用document.getElementById(...)
Here你可以找到一个例子