zoukankan      html  css  js  c++  java
  • 清除Fckeditor2.6.3 粘贴Word格式 弹出提示,并把word格式清除掉

    1.找到editor\js\fckeditorcode_ie.js
      找到if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}改为:
        var D=A;D=CleanWord(D,true,true);FCK.InsertHtml(D);return false;
    2.在fckeditorcode_ie.js最上面加上如下一个函数,Fckeditor2.6.3将会自动清除 Word格式,并保留一些布局,比如table标签等将不会清除

    掉,也不再弹出提示"是否清除word格式"
      function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
    {
     //var html = oNode.innerHTML ;
         var html=oNode;
     html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
     html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ;

     // Remove mso-xxx styles.
     html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;

     // Remove margin styles.
     html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, '' ) ;
     html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;

     html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, '' ) ;
     html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;

     html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;

     html = html.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;

     html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;

     html = html.replace( /\s*tab-stops:[^;"]*;?/gi, '' ) ;
     html = html.replace( /\s*tab-stops:[^"]*/gi, '' ) ;

     // Remove FONT face attributes.
     if ( bIgnoreFont )
     {
      html = html.replace( /\s*face="[^"]*"/gi, '' ) ;
      html = html.replace( /\s*face=[^ >]*/gi, '' ) ;

      html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;
     }

     // Remove Class attributes
     html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;

     // Remove styles.
     if ( bRemoveStyles )
      html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;

     // Remove empty styles.
     html =  html.replace( /\s*style="\s*"/gi, '' ) ;

     html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;

     html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;

     // Remove Lang attributes
     html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;

     html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;

     html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;

     // Remove XML elements and declarations
     html = html.replace(/<http://www.cnblogs.com/ggbbeyou/admin/file:///?\?xml[^>]*>/gi, '' ) ;

     // Remove Tags with XML namespace declarations: <o:p><\/o:p>
     html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;

     // Remove comments [SF BUG-1481861].
     html = html.replace(/<\!--.*?-->/g, '' ) ;

     html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;

     html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;

     // Remove "display:none" tags.
     html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;

     // Remove language tags
     html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ;

     // Remove onmouseover and onmouseout events (from MS Word comments effect)
     html = html.replace( /<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi, "<$1$3") ;
     html = html.replace( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi, "<$1$3") ;

     if ( FCKConfig.CleanWordKeepsStructure )
     {
      // The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">
      html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;

      // Word likes to insert extra <font> tags, when using MSIE. (Wierd).
      html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
      html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
     }
     else
     {
      html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;
      html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;
      html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;
      html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;
      html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;
      html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;

      html = html.replace( /<\/H\d>/gi, '<\/font><\/b><\/div>' ) ;

      // Transform <P> to <DIV>
      var re = new RegExp( '(<P)([^>]*>.*?)(<\/P>)', 'gi' ) ; // Different because of a IE 5.0 error
      html = html.replace( re, '<div$2<\/div>' ) ;

      // Remove empty tags (three times, just to be sure).
      // This also removes any empty anchor
      html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
      html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
      html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
     }

     return html ;
    }

  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/ggbbeyou/p/1605358.html
Copyright © 2011-2022 走看看