2010-07-16 27 views
-1

我在SharePoint 2007中有一個摘要單行文本列,它是多行文本列的截斷。通過the complicated process到達那裏,它變成了文本,然後需要轉換回HTML,以便像<div>這樣的標籤不顯示。如果多行列是富文本,則以下代碼可用,但如果它是增強型富文本則不適用。有沒有人有方便的代碼來完成這項工作? (注意:我正在研究它,但到目前爲止還沒有真正做過任何的JavaScript,所以它很慢)。使用JavaScript在SharePoint中使用文本到HTML

<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字符截斷限制。

回答

2

如何使用Christophe的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: [email protected] 
*/ 

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

我實際上已經試過這個代碼,但它沒有完成這項工作,但我會再試一次。 – 2010-07-19 14:47:50

+0

再次嘗試,我認爲問題是截斷髮生在html轉換之前,所以它只有部分大div標籤可以使用。我需要弄清楚如何在截斷之前應用html轉換。現在,我只是將最終的計算列更改爲足夠大的寬度,以便捕獲div標籤,現在該字段只有在有附件時纔會打破。 – 2010-07-19 15:59:30

+0

我試過是我改變寬度後,但它不會工作,我認爲這段代碼只有當它具有整個HTML片段,而我使用的代碼將只與前端工作(作爲只要它具有整個正面標籤)。 – 2010-07-19 16:10:48