2017-04-03 69 views
1

我有一個包含198個項目的SharePoint 2010列表。前30項Text to Html Javascript函數成功將文本代碼轉換爲Html,但是當我試圖選擇接下來的31個項目並使用分頁繼續時,該函數無法轉換Html並僅顯示文本代碼。有誰能讓代碼方便地完成這項工作?以下是SharePoint 2010中使用的代碼。謝謝。Sharepoint 2010中的文本到Html轉換

<script type="text/javascript"> 
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); 

    // start the periodic callback to check when the element has been changed 
    if(isLoaded == 'false') 
     { 
     postElemLength = document.getElementsByTagName("TD").length; 
     setTimeout(PostConvertToHtml,100); 
     } 
    }; 
})(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> 

以下是生成的文本代碼,需要轉換爲Html。謝謝。

="<div style='position:relative;display:inline-block;width:100%;'> 
    <div style='width:100%;display:inline-block;text-align:center;border:1px solid "&Project_Status_clr&";position:absolute;color:"&Project_Status_clr&";'> "&Project_Status&" 
    </div> 
    <div style='display:inline-block;width: 100%;background-color:"&Project_Status_clr&";text-align:center;border:1px solid;z-index:-1;filter:alpha(opacity=20);opacity:0.2;'>"&Project_Status&" 
    </div> 
</div>" 
+0

您可能執行的工作量超過必要量。你有沒有嘗試改變計算列有一個返回類型的「數字」,而不是(大概)「字符串」?這通常足以呈現HTML。 – Thriggle

+0

嗨非常感謝您的幫助。真的很有效.. –

+0

太棒了!我將添加它作爲答案。 – Thriggle

回答

0

當在計算列在SharePoint 2010中生成HTML的字符串,您可以更改計算列的值類型爲「數」來獲得HTML列表視圖渲染。

+0

您好,我非常感謝您的以上建議。在這裏,我再次陷入了我的項目。請你建議我怎樣才能將文本字符串代碼呈現爲HTML,當我使用Office 365中的前一頁單擊下一頁時。顯然,我將計算列的值類型用於「數字」,但仍顯示相同的文本字符串值。 –

+0

除了上面的評論,我已經使用了5個計算列和大約2200個項目,我需要將它正確地轉換爲HTML版本。謝謝.. –

+0

嗨,Barun,我建議在Office 365中問一個新問題,因爲該解決方案可能會與SharePoint 2010中的問題不同。 – Thriggle