parent
4360a93d72
commit
77cd2e342f
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,67 @@ |
|||||||
|
/* |
||||||
|
|
||||||
|
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,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 = 'blue'; |
||||||
|
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(); |
||||||
|
} |
||||||
|
//alert(node.nodeValue+'-----'+'---'+node.nodeValue[pat.length+1])
|
||||||
|
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] == ' ') { |
||||||
|
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("a.highlight").each(function() { |
||||||
|
this.parentNode.firstChild.nodeName; |
||||||
|
with (this.parentNode) { |
||||||
|
replaceChild(this.firstChild, this); |
||||||
|
normalize(); |
||||||
|
} |
||||||
|
}).end(); |
||||||
|
}; |
Loading…
Reference in new issue