alecpl
2009-12-15 58fb6502e3550e59afa8799d36dfce61a18f8b1b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
tinyMCEPopup.requireLangPack();
 
var PasteWordDialog = {
    init : function() {
        var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
 
        // Create iframe
        el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
        ifr = document.getElementById('iframe');
        doc = ifr.contentWindow.document;
 
        // Force absolute CSS urls
        css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
        css = css.concat(tinymce.explode(ed.settings.content_css) || []);
        tinymce.each(css, function(u) {
            cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
        });
 
        // Write content into iframe
        doc.open();
        doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
        doc.close();
 
        doc.designMode = 'on';
        this.resize();
 
        window.setTimeout(function() {
            ifr.contentWindow.focus();
        }, 10);
    },
 
    insert : function() {
        var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
 
        tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
        tinyMCEPopup.close();
    },
 
    resize : function() {
        var vp = tinyMCEPopup.dom.getViewPort(window), el;
 
        el = document.getElementById('iframe');
 
        if (el) {
            el.style.width  = (vp.w - 20) + 'px';
            el.style.height = (vp.h - 90) + 'px';
        }
    }
};
 
tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);