如何从新的windowManager窗口进行更改?

时间:2015-05-08 08:44:01

标签: javascript tinymce tinymce-4

我对JavaScript很新,所以我正在学习,因为我在做事。在我的实习中,我被要求调整一个WYSIWYG html编辑器,以便它可以用于电子邮件。我正在使用占位符以后被用户替换。

我的问题:如何检测文本框中的输入并在编辑器中替换它?

我看过其他帖子,例如this一个,但我仍然无法让它发挥作用。

到目前为止我的代码:

setup: function(ed) {
    // on mouse up gets selected text
        ed.on('mouseup', function(ed, e) {
            var highlighted = tinyMCE.activeEditor.selection.getContent();
            // Checks if highlighted texts contains a placeholder
            if (highlighted.indexOf("[!") > -1) {
                //alert(highlighted);
                tinyMCE.activeEditor.windowManager.open({
                    title: 'replace',
                    width: 320,
                    height: 240,
                    body: [
                        {type: 'textbox'}
                    ]
                })
            }
        });
    }

提前致谢!

1 个答案:

答案 0 :(得分:0)

我已经明白了!如果人们想知道我是怎么做的,那么这是我的代码:

setup: function(ed) {
    // on mouse up gets selected text
        ed.on('mouseup', function(ed) {
            var highlighted = tinyMCE.activeEditor.selection.getContent();
            // Checks if highlighted texts contains a placeholder
            if (highlighted.indexOf("[!") > -1) {
                //alert(highlighted);
                tinyMCE.activeEditor.windowManager.open({
                    title: 'Replace placeholder',
                    file: 'namechange.html',
                    width: 320,
                    height: 80,
                })
            }
        });
    }

这就是'namechange.html'文件的样子:

<body>
    <input type="text" id="namechange"/>
    <input type="button" id="submit-namechange" value="Oké"/>
    <script>
        document.getElementById('submit-namechange').onclick = function(){
            var namechange = document.getElementById('namechange').value;

            window.parent.tinyMCE.get('editor1').selection.setContent(namechange);
            window.parent.tinyMCE.activeEditor.windowManager.close();
        };
    </script>
    <script src="scripts/settings.js"></script>
</body>