Changeset 320


Ignore:
Timestamp:
07/03/09 17:07:44 (3 years ago)
Author:
sys
Message:

mediaWeb : sérialisation xhtml du fragment web.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/model/sources/office/model/base/mediaWeb/mw.doss/_mediaWeb/mwFragment.xbl.xml

    r318 r320  
    2828                        <method name="onxedload"> 
    2929                                <body><![CDATA[ 
    30                                         xed.debug("mwFragment.onxedload"); 
    3130                                        try{ 
    3231//                                              this.fPreviewFrame.contentDocument.body.style.font = "sans-serif 11pt"; 
     
    3837                        <method name="refresh"> 
    3938                                <body><![CDATA[ 
    40                                         xed.debug("mwFragment.refresh: "); 
    4139                                        try{ 
    4240                                                var vVal = this.realValue; 
     
    6866                                                xed_transf.fClipboardService.getData(vTrans, 1); 
    6967                                                var vText = xed_transf.getStringDataFromTransferable(vTrans, xed_transf.FLAVOUR_TEXT_UNICODE); 
    70                                                 this.fPreviewFrame.contentDocument.body.innerHTML = vText; 
     68                                                var vHtmlDoc = this.fPreviewFrame.contentDocument; 
     69                                                 
     70                                                vHtmlDoc.body.innerHTML = vText; 
     71                                                 
     72                                                var vXhtmlRoot = document.createDocumentFragment(); 
     73                                                 
     74                                                function cloneChildren2Xhtml(pHtmlNode, pXhtml) { 
     75                                                        var vNode = pHtmlNode.firstChild; 
     76                                                        while(vNode) { 
     77                                                                switch(vNode.nodeType) { 
     78                                                                case 1 : 
     79                                                                        var vClone = pXhtml.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml", "xhtml:"+vNode.nodeName.toLowerCase()); 
     80                                                                        var vAtts = vNode.attributes; 
     81                                                                        for(var i = 0; i < vAtts.length; i++) { 
     82                                                                                var vAtt = vAtts.item(i); 
     83                                                                                vClone.setAttribute(vAtt.nodeName, vAtt.nodeValue); 
     84                                                                        } 
     85                                                                        pXhtml.appendChild(vClone); 
     86                                                                        cloneChildren2Xhtml(vNode, vClone); 
     87                                                                        break; 
     88                                                                case 3 : 
     89                                                                case 4 : 
     90                                                                        var vClone = pXhtml.ownerDocument.createTextNode(vNode.nodeValue); 
     91                                                                        pXhtml.appendChild(vClone); 
     92                                                                        break; 
     93                                                                } 
     94                                                                vNode = vNode.nextSibling; 
     95                                                        } 
     96                                                } 
     97                                                cloneChildren2Xhtml(vHtmlDoc.body, vXhtmlRoot); 
     98                                                 
    7199                                                var vEncoder = Components.classes["@mozilla.org/layout/documentEncoder;1?type=application/xhtml+xml"].createInstance(Components.interfaces.nsIDocumentEncoder); 
    72                                                 vEncoder.init(this.fPreviewFrame.contentDocument, "application/xhtml+xml", 0); 
    73                                                 vEncoder.setContainerNode(this.fPreviewFrame.contentDocument.body); 
     100                                                vEncoder.init(vXhtmlRoot.ownerDocument, "application/xhtml+xml", 0); 
     101                                                 
     102                                                vEncoder.setContainerNode(vXhtmlRoot); 
    74103                                                var vEncFrag = vEncoder.encodeToString(); 
     104                                                //xed.debug("RESULT = "+vEncFrag); 
    75105                                                this.updateVal(vEncFrag); 
    76106                                                this.fBtnCopy.style.display = this.realValue && this.realValue.length > 0 ? "" : "none"; 
Note: See TracChangeset for help on using the changeset viewer.