From 1932b64954f677783b76c1d86310c61619fff84c Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 4 Dec 2009 10:49:11 -0500 Subject: [PATCH] Fixing jquery.highlight to match a word see DT#5524 --- main/inc/lib/javascript/jquery.highlight.js | 114 ++++++++++---------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/main/inc/lib/javascript/jquery.highlight.js b/main/inc/lib/javascript/jquery.highlight.js index 7460344c6e..18def4225a 100755 --- a/main/inc/lib/javascript/jquery.highlight.js +++ b/main/inc/lib/javascript/jquery.highlight.js @@ -1,68 +1,72 @@ /* - highlight v3 - Highlights arbitrary terms. - - MIT license. -Johann Burkard - - +Johann Burkard +Julio Montoya fixes for Chamilo 1.8.6.2 Glossary tool to strict search */ jQuery.fn.highlight = function(pat,real_code) { - 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('a'); - spannode.className = 'glossary-ajax'; - spannode.style.color = '#084B8A'; - spannode.style.fontWeight='100'; - spannode.style.textDecoration = 'none'; - spannode.name = 'link'+real_code; - spannode.href = '#'; - var SearchRegExp = new RegExp("(" + pat +")","gi"); - var MatchRegExp = node.nodeValue.match(SearchRegExp); - - if (MatchRegExp == null) { - MatchRegExp = new Array(); - } - if (MatchRegExp.length > 0 && node.nodeValue[pat.length+1] != '') { - var middlebit = node.splitText(pos); - var endbit = middlebit.splitText(pat.length); - if (endbit.nodeValue[0] == null || endbit.nodeValue[0] == ' ' || endbit.nodeValue[0] == '.' || endbit.nodeValue[0] == ',' || endbit.nodeValue[0] == ';' || endbit.nodeValue[0] == '"') { - 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 = 0 ) { + var spannode = document.createElement('a'); + spannode.className = 'glossary-ajax'; + spannode.style.color = '#084B8A'; + spannode.style.fontWeight='100'; + spannode.style.textDecoration = 'none'; + spannode.name = 'link'+real_code; + spannode.href = '#'; + var SearchRegExp = new RegExp("(" + pat +")","gi"); + var MatchRegExp = node.nodeValue.match(SearchRegExp); + if (MatchRegExp == null) { + MatchRegExp = new Array(); + } + + if (MatchRegExp.length > 0 && node.nodeValue[pat.length+1] != '') { + var middlebit = node.splitText(pos); + var endbit = middlebit.splitText(pat.length); + if (endbit.nodeValue[0] == null || endbit.nodeValue[0] == ' ' || endbit.nodeValue[0] == '.' || endbit.nodeValue[0] == ',' || endbit.nodeValue[0] == ';' || endbit.nodeValue[0] == '"') { + 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