• 清除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 ;
    }

  • 相关阅读:
    新的知识点来了-ES6 Proxy代理 和 去银行存款有什么关系?
    JavaScript中一种全新的数据类型-symbol
    箭头函数的this指向问题-一看就懂
    ES6中对函数的扩展
    ES6中对象的扩展
    ES6中对数组的扩展
    ES6中对数值的扩展
    UWP --- Display Content 显示基础内容
    ViewBag & ViewData
    Bubble Sort冒泡排序
  • 原文地址:https://www.cnblogs.com/ggbbeyou/p/1605358.html
Copyright © 2020-2023  润新知