Avatar billede thoko Nybegynder
16. november 2008 - 18:43 Der er 6 kommentarer

Find på denne side

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.

Bud på, hvor jeg finder et sådant program ???
Avatar billede olebole Juniormester
16. november 2008 - 18:59 #1
<ole>

Ctrl+F eller Ctrl+B - alt efter browser-/brugersprog. Det er næppe nødvendigt at lave noget, som allerede eksisterer i enhver browser  =)

/mvh
</bole>
Avatar billede thoko Nybegynder
16. november 2008 - 22:28 #2
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).

Har du en sådan rutine på lager???
Avatar billede gunfar Nybegynder
17. november 2008 - 00:38 #3
Ctrl+F = F= find ( engelsk ) eller Ctrl+B  b= benutzen (Tysk )

Ctrl+P = p for print
Avatar billede olebole Juniormester
17. november 2008 - 01:17 #4
En første gennemskrivning, som sikkert kan sexes lidt op, men du må tage den, som den er:

<script type="text/javascript">
var oHighLight = document.createElement("strong");
oHighLight.style.background = "#ffff00";
oHighLight.style.padding = "0 4px";
oHighLight.style.border = "1px solid #ffcc00";
oHighLight.appendChild( document.createTextNode("\u00a0") );

var oFind = {w:"", n:1};
var nFound = 0;

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>
Avatar billede thoko Nybegynder
13. december 2008 - 22:51 #5
Tak for hjælpen. Må jeg bede om et svar!
Avatar billede olebole Juniormester
14. december 2008 - 23:48 #6
Selvtak. Gerne ... og du må også få et  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester