代码之家  ›  专栏  ›  技术社区  ›  Lance Roberts

在SharePoint中使用Javascript将文本转换为HTML

  •  -1
  • Lance Roberts  · 技术社区  · 15 年前

    the complicated process 为了达到这个目的,它将转换成文本,然后需要将文本转换回HTML,这样标签就像 <div>

    <script type="text/javascript">
      var theTDs = document.getElementsByTagName("TD");
      var i=0;
      var TDContent = " ";
      while (i < theTDs.length)
      {
        try
        {
          TDContent = theTDs[i].innerText || theTDs[i].textContent;
          if (TDContent.indexOf("<div") == 0)
            {
              theTDs[i].innerHTML = TDContent;
            }
        }
      catch(err){}
      i=i+1;
      }
    </script>
    

    1 回复  |  直到 8 年前
        1
  •  2
  •   Ryan    15 年前

    用克里斯托夫的怎么样 techniques to output HTML using a calculated column .

    具体来说,他编写了javascript,将编码的HTML(现在已经有)转换为HTML。

    将以下内容添加到同一页面上的内容编辑器Web部件(CEWP)中。

    <script type="text/javascript">
    /*
    Text to HTML Lite - version 2.1.1
    Questions and comments: Christophe@PathToSharePoint.com
    */
    
    function TextToHTML(NodeSet, HTMLregexp) {
       var CellContent = "";
       var i=0;
       while (i < NodeSet.length)
       {
          try 
          {
             CellContent = NodeSet[i].innerText || NodeSet[i].textContent;
             if (HTMLregexp.test(CellContent)) 
                { NodeSet[i].innerHTML = CellContent; }
          } 
          catch(err)
          {}
    
          i=i+1;
       }
    }
    
    // Calendar views
    var regexpA = new RegExp("\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*");
    TextToHTML(document.getElementsByTagName("a"),regexpA);
    
    // List views
    var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$");
    TextToHTML(document.getElementsByTagName("TD"),regexpTD);
    
    </script>
    
        2
  •  2
  •   Chase Choi    6 年前

    我已从以下链接修改了TextToHTML代码,源代码为PathToSharePoint.com,并添加了一个事件监听器,该监听器在SharePoint 2016上以IE兼容模式成功运行,该模式作为IE10和Chrome最新版本运行: Text to Html conversion in Sharepoint 2010

    <script type="text/javascript">
      /*
      Text to HTML Lite - version 2.1.1
      Questions and comments: Christophe@PathToSharePoint.com
      */
      document.addEventListener("DOMContentLoaded", function() {
        function TextToHTML(NodeSet, HTMLregexp) {
          var CellContent = "";
          var i = 0;
          while (i < NodeSet.length) {
            try {
              CellContent = NodeSet[i].innerText || NodeSet[i].textContent;
              if (HTMLregexp.test(CellContent)) {NodeSet[i].innerHTML = CellContent;}
            }
            catch (err) {}
            i = i + 1;
          }
        }
    
        // Calendar views
        var regexpA = new RegExp("\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*");
        TextToHTML(document.getElementsByTagName("a"), regexpA);
    
        // List views
        var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$");
        TextToHTML(document.getElementsByTagName("TD"), regexpTD);
    
        // This function is call continuesly every 100ms until the length of the main field changes
        // after which the convert text to HTML is executed.
        var postElemLength = 0;
        function PostConvertToHtml() {
          if (postElemLength == document.getElementsByTagName("TD").length) {
            setTimeout(PostConvertToHtml, 100);
          }
          else {
            var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$");
            TextToHTML(document.getElementsByTagName("TD"), regexpTD);
          }
        }
    
        // Grouped list views
        ExpGroupRenderData = (function(old) {
          return function(htmlToRender, groupName, isLoaded) {
    
            var result = old(htmlToRender, groupName, isLoaded);
            var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$");
            TextToHTML(document.getElementsByTagName("TD"), regexpTD);
          };
        })(ExpGroupRenderData);
    
        // Preview pane views
        if (typeof (showpreview1) == "function") {
          showpreview1 = (function(old) {
            return function(o) {
              var result = old(o);
              var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$");
              TextToHTML(document.getElementsByTagName("TD"), regexpTD);
            };
          })(showpreview1);
        }
      });
    </script>