tags:

views:

125

answers:

5

I use this code for creating Summary of the Blog Posts at my blog Gadgetcage.com, In this JS code HTML tags are disabled by the author, I would like to remove that disabling HTML tag function in this Code. Please help me!!

function removeHtmlTag(strx,chop){ 
    if(strx.indexOf("<")!=-1)
    {
     var s = strx.split("<"); 
     for(var i=0;i<s.length;i++){ 
      if(s[i].indexOf(">")!=-1){ 
       s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length); 
      } 
     } 
     strx =  s.join(""); 
    }
    chop = (chop < strx.length-1) ? chop : strx.length-2; 
    while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; 
    strx = strx.substring(0,chop-1); 
    return strx+'...'; 
}

function createSummaryAndThumb(pID){
    var div = document.getElementById(pID);
    var imgtag = "";
    var img = div.getElementsByTagName("img");
    var summ = summary_noimg;
    if(img.length>=1) { 
     imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
     summ = summary_img;
    }

    var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
    div.innerHTML = summary;
}
+1  A: 

You simply have to avoid calling the function: removeHtmlTag(div.innerHTML,summ).

Vincent Ramdhanie
A: 

If you want to allow html, just create a new function consisting of

function truncateSummary(strx, chop) {
  chop = (chop < strx.length-1) ? chop : strx.length-2; 
  while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; 
  strx = strx.substring(0,chop-1); 
  return strx+'...'; 
}

and change the var summary line to

var summary = imgtag + '<div>' + truncateSummary(div.innerHTML,summ) + '</div>';
Ben Hughes
A: 

@Vincent - I have tried that earlier, It isn't working!

@Ben Hughes - No! It is not working with the new code also!

A: 

I'm don't know too much about JavaScript, but shouldn't this do the trick.

function createSummaryAndThumb(pID){
    var div = document.getElementById(pID);
    var imgtag = "";
    var img = div.getElementsByTagName("img");
    if(img.length>=1) { 
        imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
    }

    var summary = imgtag + '<div>' + div.innerHTML + "..." + '</div>';
    div.innerHTML = summary;
}

Just use that and delete the removeHtmlTag function

Andrew Marsh
A: 

Found this post looking for an answer to the very same question posed by the original poster. I'd like to be able to retain the original line breaks and formatting in truncated posts. So far, any changes to the script have simply resulted in posts not being truncated at all, and the whole thing being displayed. Other ideas?

Lee Thomson