Rate this script:  I Love it  /   I Hate it

automatic ellipsis for blocks of text


Code


<html>
  <head>
    <script>
      function init () {
        var ellipsisSeq = 0;
        var ellipsisEls = document.getElementsByTagName('span');
        for (var i = 0; i < ellipsisEls.length; i++) {
          var el = ellipsisEls[i];
          if (el.className.match(/ellipsis/)) {
            var maxLength = el.getAttribute("maxLength");
            if (!maxLength) maxLength = 10;

            var longText = el.innerHTML;
            var shortText = trim(stripTags(el.innerHTML));
            if (shortText.length < maxLength) continue;
            shortText = shortText.substring(0, maxLength);

            el.id = "ellipsis" + ellipsisSeq++;
            el.innerHTML =
                '<span id="' + el.id + 'short">' + shortText +
                '<a href="javascript:ellipsisLong(\'' + el.id + '\')">...</a>' +
                '</span>' +
                '<span style="display:none" id="' + el.id + 'long">' +
                longText +
                '<a href="javascript:ellipsisShort(\'' + el.id + '\')">...</a> ' +
                '</span>';
          }
        }
      }

      function stripTags (t) {
        while (t.match(/<.*>/)) t = t.replace(/<[^>]*>/, "");
        return t;
      }

      function trim (t) {
        return t.replace(/^[ \r\n\t]*/, "").replace(/[ \r\n\t]*$/, "");
      }

      function ellipsisShort (id) {
        document.getElementById(id + "short").style.display = "inline";
        document.getElementById(id + "long").style.display = "none";
      }

      function ellipsisLong (id) {
        document.getElementById(id + "short").style.display = "none";
        document.getElementById(id + "long").style.display = "inline";
      }
    </script>
  </head>
  <body onload="init()">
    <table border="1">
      <tr>
        <td>
          <span class="ellipsis" maxLength="100">Lorem ipsum dolor sit amet,
            consectetuer adipiscing elit. Proin quis wisi in velit faucibus
            tincidunt.  Integer sodales metus ut nulla. Nullam porta tincidunt
            massa.  Pellentesque vel pede. Donec malesuada pharetra tortor.
            Donec dolor magna, rhoncus ac, malesuada sit amet, ullamcorper vel,
            nunc.  Vestibulum sed erat. Fusce leo dolor, tincidunt at, euismod
            in, auctor in, orci. Donec feugiat nisl ac mauris. Suspendisse
            potenti.  Integer at sem. Proin a lacus. Nullam venenatis. Nullam
            ac neque.  Pellentesque enim turpis, pulvinar eget, semper eu,
            lobortis vitae, erat. Nulla consequat. Morbi sed ipsum vitae metus
            ornare molestie.  Aliquam erat volutpat. Aliquam sollicitudin metus
            in est. Etiam tincidunt sollicitudin tortor.</span>
        </td>
        <td>
          <span class="ellipsis" maxLength="50">Donec vitae lectus. Mauris
            vitae massa. Nulla neque. Curabitur justo libero, dapibus in,
            ornare ut, fermentum ac, urna. Etiam velit massa, iaculis sit amet,
            tincidunt vel, lacinia non, dui. Vivamus vel sem. In non velit.
            Donec placerat molestie enim. Nunc quis purus id purus ultrices
            tempus. Etiam consectetuer nibh ac lectus. In et lorem. In pede
            arcu, posuere non, volutpat eu, hendrerit non, eros. Integer enim
            risus, egestas vitae, tincidunt ac, auctor non, ligula. Duis id
            justo at nulla feugiat lacinia. Quisque pretium, lacus ut auctor
            eleifend, dolor libero accumsan mi, sed pharetra magna felis ac
            felis. Suspendisse malesuada quam. Quisque sem. Quisque vitae
            tortor. Mauris tellus felis, laoreet quis, sodales nec, laoreet et,
            tellus.</span>
        </td>
      </tr>
    </table>
  </body>
</html>
 

 

 
automatic ellipsis for blocks of text scripts | automatic ellipsis for blocks of text snippet | automatic ellipsis for blocks of text example | automatic ellipsis for blocks of text tutorial | automatic ellipsis for blocks of text code