-1

SharePoint 2007 に、複数行のテキスト列が切り捨てられた単一行の要約テキスト列があります。そこにたどり着くまでの複雑なプロセスを経て、テキストになり、HTML に戻す必要があるため、 のようなタグは表示され<div>ません。次のコードは、複数行の列がリッチ テキストの場合は機能しますが、拡張リッチ テキストの場合は機能しません。これを機能させるのに便利なコードを持っている人はいますか? (注:私はそれに取り組んでいますが、これまでJavaScriptを実際に行っていないため、ゆっくりと進んでいます).

<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>

強化されたリッチ テキストでは、div タグが 45 文字の切り捨て制限よりも長いため、現在得られている結果は何も表示されません。

4

2 に答える 2

2

Christophe の手法を使用して、計算列を使用して HTML を出力してみてはどうでしょうか。

具体的には、エンコードされた HTML (あなたが今手に入れたもの) を HTML に変換する JavaScript を書いています。

同じページのコンテンツ エディター 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>
于 2010-07-19T09:53:15.163 に答える