TinyMCE 4 - getContent()没有从对话框输入字段接收值

时间:2014-07-04 13:14:48

标签: javascript jquery asp.net-mvc-4 razor tinymce

对于我目前正在处理的软件,我正在为我们的内部帮助文档做一个小小的CMS,但我一直在尝试使用TinyMCE,以便他们可以轻松应用适合我们外观的样式而无需理解HTML 。我有我需要的所有自定义按钮,但是我在使用最终自定义按钮时遇到了问题。

我们需要的是一个按钮,它会自动将他们输入的单词作为查询字符串参数(FindWord?Word = [输入字段]),当稍后点击该页面时,会弹出一个隐藏的div并锚定到词汇表。然而,getContent()函数似乎对我没有用,经过超过12个小时的搜索,并尝试了大量的例子,我似乎无法让它工作。

其他细节我不确定是否重要:
- 使用带有Razor视图的MVC 4,带有TinyMCE.Jquery包的TinyMCE 4。
- 这是有问题的输入字段:http://i.imgur.com/wrMoTOP.png

任何帮助都会很棒!谢谢!

<script type="text/javascript">
tinyMCE.init({
    mode: "specific_textareas",
    editor_selector: "mceEditor",
    theme: "modern",
    plugins: "pagebreak,textcolor,layer,table,save,hr,image,link,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,fullscreen,visualchars,nonbreaking,template,wordcount,code,customcss_1,customcss_2",
    menubar: "edit format view table tools",
    toolbar: "undo redo print glossaryword | fontsizeselect | forecolor backcolor | bold italic underline strikethrough | outdent alignleft aligncenter alignright alignjustify indent | bullist numlist hr |",
    contextmenu: "undo redo | cut copy paste | link | customcss_1 customcss_2 glossaryword |",
    height: 500,
    setup: function (ed) {
        ed.addButton('glossaryword', {
            title: 'Query String Parameter',
            onclick: function () {
                ed.windowManager.open({
                    title: 'Query String Parameter',
                    body: [
                    { type: 'textbox', name: 'source', label: 'Source' }
                ],
                    onsubmit: function (e) {
                        ed.focus();
                        ed.selection.setContent('<a href="FindWord?Word=' + ed.selection.getContent() + '">' + ed.selection.getContent() + '</a>');
                    }
                });
            }
        });
    }
});    

1 个答案:

答案 0 :(得分:0)

经过一段时间后,我意识到自己很傻。

setup: function (ed) {
        ed.addButton('glossaryword', {
            title: 'Query String Parameter',
            onclick: function () {
                ed.windowManager.open({
                    title: 'Query String Parameter',
                    body: [
                    { type: 'textbox', name: 'word', label: 'Glossary Word', id: 'popupword' }
                ],
                    onsubmit: function (e) {
                        ed.focus();
                        ed.selection.setContent('<a href="FindWord?Word=' + e.data.word + '">' + e.data.word + '</a>');
                    }
                });
            }
        });
    }