Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 5 of 5
  1. #1
    Senior Coder effpeetee's Avatar
    Join Date
    Feb 2007
    Location
    Clapham Junction - London SW
    Posts
    4,885
    Thanks
    228
    Thanked 204 Times in 203 Posts

    Exclamation JS error message when leaving code.

    This code works OK but sometimes gives an error message at line 17, 1

    Is there something small wrong with the code - missing brackets or the like.
    I know very little of JS.

    Any help welcomed. No problems if it is not easy to find.

    Frank


    Code:
    /*
    
    highlight v3
    
    Highlights arbitrary terms.
    
    <http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
    
    MIT license.
    
    Johann Burkard
    <http://johannburkard.de>
    <mailto:jb@eaio.com>
    
    */
    
    jQuery.fn.highlight = function(pat) {
     function innerHighlight(node, pat) {
      var skip = 0;
      if (node.nodeType == 3) {
       var pos = node.data.toUpperCase().indexOf(pat);
       if (pos >= 0) {
        var spannode = document.createElement('span');
        spannode.className = 'highlight';
        var middlebit = node.splitText(pos);
        var endbit = middlebit.splitText(pat.length);
        var middleclone = middlebit.cloneNode(true);
        spannode.appendChild(middleclone);
        middlebit.parentNode.replaceChild(spannode, middlebit);
        skip = 1;
       }
      }
      else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
       for (var i = 0; i < node.childNodes.length; ++i) {
        i += innerHighlight(node.childNodes[i], pat);
       }
      }
      return skip;
     }
     return this.each(function() {
      innerHighlight(this, pat.toUpperCase());
     });
    };
    
    jQuery.fn.removeHighlight = function() {
     return this.find("span.highlight").each(function() {
      this.parentNode.firstChild.nodeName;
      with (this.parentNode) {
       replaceChild(this.firstChild, this);
       normalize();
      }
     }).end();
    };
    Last edited by effpeetee; 06-01-2009 at 10:11 AM.
    * Sources (updated: 21.11.2012.
    Using Windows 8 Professional. 64bit with HP Photosmart 5510 printer Very useful site here.

  • #2
    Gütkodierer
    Join Date
    Apr 2009
    Posts
    2,127
    Thanks
    1
    Thanked 426 Times in 424 Posts
    17, 1, that's the very first thing in your code, so I'd suppose it sometimes generating an error can only mean jQuery has not been properly loaded.

    Are you including jQuery from an external site that might be unreliable?

  • #3
    Senior Coder effpeetee's Avatar
    Join Date
    Feb 2007
    Location
    Clapham Junction - London SW
    Posts
    4,885
    Thanks
    228
    Thanked 204 Times in 203 Posts
    Quote Originally Posted by venegal View Post
    17, 1, that's the very first thing in your code, so I'd suppose it sometimes generating an error can only mean jQuery has not been properly loaded.

    Are you including jQuery from an external site that might be unreliable?
    No, it is in my sites root directory with all the rest.

    Code:
    /* - for jqueryhighlight.js
    
    highlight v3
    
    Highlights arbitrary terms.
    
    <http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
    
    MIT license.
    
    Johann Burkard
    <http://johannburkard.de>
    <mailto:jb@eaio.com>
    
    */
    
    jQuery.fn.highlight = function(pat) {
     function innerHighlight(node, pat) {
      var skip = 0;
      if (node.nodeType == 3) {
       var pos = node.data.toUpperCase().indexOf(pat);
       if (pos >= 0) {
        var spannode = document.createElement('span');
        spannode.className = 'highlight';
        var middlebit = node.splitText(pos);
        var endbit = middlebit.splitText(pat.length);
        var middleclone = middlebit.cloneNode(true);
        spannode.appendChild(middleclone);
        middlebit.parentNode.replaceChild(spannode, middlebit);
        skip = 1;
       }
      }
      else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
       for (var i = 0; i < node.childNodes.length; ++i) {
        i += innerHighlight(node.childNodes[i], pat);
       }
      }
      return skip;
     }
     return this.each(function() {
      innerHighlight(this, pat.toUpperCase());
     });
    };
    
    jQuery.fn.removeHighlight = function() {
     return this.find("span.highlight").each(function() {
      this.parentNode.firstChild.nodeName;
      with (this.parentNode) {
       replaceChild(this.firstChild, this);
       normalize();
      }
     }).end();
    };
    Frank
    Last edited by effpeetee; 05-31-2009 at 07:57 PM.
    * Sources (updated: 21.11.2012.
    Using Windows 8 Professional. 64bit with HP Photosmart 5510 printer Very useful site here.

  • #4
    Senior Coder jmrker's Avatar
    Join Date
    Aug 2006
    Location
    FL
    Posts
    3,130
    Thanks
    38
    Thanked 504 Times in 498 Posts
    I think 'venegal' is asking where are you loading the 'jquery.js' external file?

  • #5
    Senior Coder effpeetee's Avatar
    Join Date
    Feb 2007
    Location
    Clapham Junction - London SW
    Posts
    4,885
    Thanks
    228
    Thanked 204 Times in 203 Posts
    The program is working fine now. I am not certain why.
    I started from scratch and re-assembled it. Obviously something subtle.

    Here it is to check.

    Frank
    Last edited by effpeetee; 06-01-2009 at 04:24 PM.
    * Sources (updated: 21.11.2012.
    Using Windows 8 Professional. 64bit with HP Photosmart 5510 printer Very useful site here.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •