似乎无法从自定义插件中关闭tinymce 4弹出窗口

时间:2014-08-26 16:42:06

标签: javascript jquery popup tinymce

我在tinyMCE 4中创建了一个自定义插件。它弹出一个模态窗口并在所述目录中显示图像。您选择图像,然后将其添加到内容并关闭弹出窗口。我把它插入到内容中,但我似乎无法关闭弹出窗口。我尝试了很多不同的方法,但都没有。

我得到的一个错误是:

Uncaught TypeError: Cannot read property 'win' of undefined

随后的当前代码发生了这种情况:

插件:

tinymce.PluginManager.add('imageuploads', function(editor, url) {
// Add a button that opens a window
editor.addButton('imageuploads', {
    text: 'Insert Image',
    icon: false,
    onclick: function() {
        // Open window
        editor.windowManager.open({
            title: "Insert Uploaded Image",
            url: 'insertimage.php',
            width: 700,
            height: 600,
            inline: true,
            close_previous: "yes"
        });
    }
});
});

插件文件:

$(document).ready(function(){
    $('#submit-image-url').bind('click', function(){
        var image_url = $('.image_choice:checked').val();
        var insert_url = '<img src="/editor/uploads/' + image_url + '">';

        parent.tinymce.activeEditor.selection.setContent(insert_url);
        parent.tinymce.activeEditor.windowManager.close(this);
    });
});

之前有一些HTML,但它只是用无线电输入列出的图像来确定选择哪一个。插入作品,但我似乎无法关闭弹出窗口。

任何帮助将不胜感激!谢谢!

错误来自第22746行的tinymce.js,因此调用close()方法。由于某种原因,它无法看到弹出窗口。

4 个答案:

答案 0 :(得分:2)

我用以下内容修复了它:

var ed = parent.tinymce.editors[0];
ed.windowManager.windows[0].close();

所以,现在我的jQuery代码如下所示:

$('.image_choice').bind('click', function(){
    var image_url = $('.image_choice:checked').val();
    var insert_url = '<img src="/editor/uploads/' + image_url + '">';

    parent.tinymce.activeEditor.selection.setContent(insert_url);

    var ed = parent.tinymce.editors[0];
    ed.windowManager.windows[0].close();
});

我希望这可以帮助遇到同样问题的人。这个让我困惑了几天。

答案 1 :(得分:0)

如果您的网页有两个以上的TinyMCE编辑器,则可以使用此代码:

tinymce.activeEditor.windowManager.close();

我将它用于TinyMCE 4。

答案 2 :(得分:0)

我也在与此斗争。我试图为MVC实现TinyMCE 4:http://www.roxyfileman.com/

更改此代码有助于我:win.tinyMCE.activeEditor.windowManager.close(); / win.tinyMCE.activeEditor.windowManager.windows [1] .close();

在我选择文件的情况下,错误的弹出窗口会关闭。也许对某人有帮助;)

答案 3 :(得分:-2)

尝试使用代码`

   
    <script type="text/javascript">
     var parentWin = (!window.frameElement && window.dialogArguments) ||     opener ||     parent || top;
 $(function() {
 $('img').click(function(e){
e.preventDefault();
imgSrc = $(this).attr('src');
imgAlt = $(this).attr('alt');
divInput =                 $("input#"+parentWin.inputSrc,parent.document).parent().attr('id');
divInputSplit = divInput.split("_");
divTitle = "mce_"+(parseInt(divInputSplit[1],10) +1);
$("input#"+parentWin.inputSrc,parent.document).val(imgSrc);
$("input#"+divTitle,parent.document).val(imgAlt);
$(".mce-close",parent.document).last().trigger("click");
});
});  
</script>

或访问tinymce4 file browser`