Jeg har brug for et script til at søge på aktuel side med følgende karakteristika: Ved tryk på søg-knap vises vindue til angivelse af søgeord og med 'find næste' knap. Vinduet skal blive stående statisk mens siden nedenunder scroller til næste søgeresultat. Skal evt. kunne søge både forlæns og baglæns og i pop-up angive "ikke flere søgeresultater".
Scriptet skal kunne fungere i de nye(re) versioner af IE, FF, Opera og Chrome.
Mann soll sich nicht verblõffen lassen!!! Jeg har i mange år (også sammen med andre) brugt uendelig mange timer på nettet, men har ikke været opmærksom på genvejene - selvom de er i menuerne. øv øv øv.
Jeg tør derfor ikke tro på, at metoden er alment kendt. Vil foretrække en "Find på siden"-knap og tilknyttet rutine der browserafhængigt udfører genvejstastningen. (for IE 8ren og evt. IE7 - IE6 og tidligere ser jeg gerne bort fra hvis der er forskel).
function highlightWord(oCont) { if (oHighLight.parentNode && oHighLight.parentNode.nodeType==1) return; var oNode, sVal, aCh = oCont.childNodes, oRx = new RegExp("(.*?)\\b("+oFind.w+")\\b(.*?)$", ""); for (var i=0,j=aCh.length; i<j; i++) { oNode = aCh[i]; if (oNode.nodeType==1) { if (oNode.getAttribute("id")=="searchCont") continue; highlightWord(oNode); } else if (oNode.nodeType==3) { sVal = oNode.nodeValue; if (oRx.test(sVal)) { if (++nFound<oFind.n) continue; oCont.insertBefore( document.createTextNode(RegExp.$1), oNode ); oHighLight.firstChild.nodeValue = RegExp.$2; oCont.insertBefore( oHighLight, oNode ); oNode.nodeValue = RegExp.$3; return; } } } } function searchDocument(vBox) { var sVal = (typeof vBox=="string"?document.getElementById(vBox):vBox).value, oMsg = document.getElementById("noMoreMsg"); sVal = sVal.replace(/^\s*(.+?)\s*$/, "$1"); if (sVal=="") return; if (oHighLight.parentNode && oHighLight.parentNode.nodeType==1) { oHighLight.parentNode.replaceChild( document.createTextNode(oHighLight.firstChild.nodeValue), oHighLight); } if (oFind.w!=sVal) oFind = {w:sVal, n:1}; else oFind.n++; nFound = 0; oMsg.style.display = "none"; highlightWord(document.getElementsByTagName("body")[0]); if (!oHighLight.parentNode || oHighLight.parentNode.nodeType!=1) { oMsg.style.display = "inline"; oFind.w = ""; } } </script>
<p id="searchCont"><input id="searchBox" type="text" onkeyup="if(event.keyCode==13)searchDocument(this)"> <button onclick="searchDocument('searchBox')">Søg på siden</button> <b id="noMoreMsg" style="display:none">Der kan ikke findes flere</b></p>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.