Frank: Suchfunktion in HTML einbinden!

Hallo!

Ich will eine einfach Suchfunktion in HTML einbinden, die mir meine HTML-Seite durchsucht! Will es nicht mit dem Suchfunktion des IE lösen, dann würde ich ja das hier nicht schreiben.
Hat jemand eine Idee, wie sowas geht?

Gruß Frank

  1. Hallo Frank,

    hier meine vor ein paar Tagen gefundene Lösung, mit der ich zufrieden bin.

    Grüße Markus

    /************************************************************
                          Find-in-page script
                  By Mark Wilton-Jones 11-12/10/2002
    *************************************************************

    Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
    Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use

    To use:

    Inbetween the <head> tags, put:

    <script src="PATH TO SCRIPT/findinpage.js" type="text/javascript" language="javascript1.2"></script>

    Wherever you want to put a find in page form, put:

    if( ( document.body && document.body.createTextRange ) || window.find ) {
     document.write( '<form action="" onSubmit="searchForText( this.elements[0].value, window ); return false;">'+
      '<input type="text" size="15"> <input type="submit" value="Find in Page"></form>' );
    }
    ___________________________________________________________________________________________*/

    function searchForText( toFind, frameToSearch ) {
     if( !toFind ) { window.alert( 'You have not entered any text to search for' ); return; }
     if( frameToSearch.focus ) { frameToSearch.focus(); }
     if( window.find ) {
      //Netscape compatible browsers provide the window.find method
      if( document.layers ) {
       //Against the JS spec, Netscape 4 will produce errors if too many arguments are given
       var ifFound = frameToSearch.find( toFind, false, false );
      } else {
       var ifFound = frameToSearch.find( toFind, false, false, true, false, true, false );
      }
     } else if( frameToSearch.document.body && frameToSearch.document.body.createTextRange ) {
      //IE or compatible use various TextRange features
      if( frameToSearch.document.selection && frameToSearch.document.selection.type != 'None' ) {
       //If some text is selected already (previous search or if they have selected it)
       //make that the text range. Then move to the end of it to search beyond it
       var theRange = frameToSearch.document.selection.createRange();
       theRange.collapse( false );
      } else {
       //If no text is selected, start from the start of the document
       var theRange = frameToSearch.document.body.createTextRange();
      }
      //find the next occurrence of the chosen string
      var ifFound = theRange.findText( toFind );
      if( ifFound ) { theRange.select(); }
     } else {
      alert ( 'Please use your browser's search facility' );
     }
     if( !ifFound ) { alert ( 'Could not find text:\n' + toFind ); }
    }

    Hallo!

    Ich will eine einfach Suchfunktion in HTML einbinden, die mir meine HTML-Seite durchsucht! Will es nicht mit dem Suchfunktion des IE lösen, dann würde ich ja das hier nicht schreiben.
    Hat jemand eine Idee, wie sowas geht?

    Gruß Frank

    1. Hallo Markus

      Wenn ich dass in den Head Kopiere

      Inbetween the <head> tags, put:

      <script src="PATH TO SCRIPT/findinpage.js" type="text/javascript" language="javascript1.2"></script>

      Wherever you want to put a find in page form, put:

      und das genauso in den Body geht es nicht!

      if( ( document.body && document.body.createTextRange ) || window.find ) {
       document.write( '<form action="" onSubmit="searchForText( this.elements[0].value, window ); return false;">'+
        '<input type="text" size="15"> <input type="submit" value="Find in Page"></form>' );
      }
      ___________________________________________________________________________________________*/

      function searchForText( toFind, frameToSearch ) {
       if( !toFind ) { window.alert( 'You have not entered any text to search for' ); return; }
       if( frameToSearch.focus ) { frameToSearch.focus(); }
       if( window.find ) {
        //Netscape compatible browsers provide the window.find method
        if( document.layers ) {
         //Against the JS spec, Netscape 4 will produce errors if too many arguments are given
         var ifFound = frameToSearch.find( toFind, false, false );
        } else {
         var ifFound = frameToSearch.find( toFind, false, false, true, false, true, false );
        }
       } else if( frameToSearch.document.body && frameToSearch.document.body.createTextRange ) {
        //IE or compatible use various TextRange features
        if( frameToSearch.document.selection && frameToSearch.document.selection.type != 'None' ) {
         //If some text is selected already (previous search or if they have selected it)
         //make that the text range. Then move to the end of it to search beyond it
         var theRange = frameToSearch.document.selection.createRange();
         theRange.collapse( false );
        } else {
         //If no text is selected, start from the start of the document
         var theRange = frameToSearch.document.body.createTextRange();
        }
        //find the next occurrence of the chosen string
        var ifFound = theRange.findText( toFind );
        if( ifFound ) { theRange.select(); }
       } else {
        alert ( 'Please use your browser's search facility' );
       }
       if( !ifFound ) { alert ( 'Could not find text:\n' + toFind ); }
      }

      Was muss ich denn noch genau machen, habe nicht soviel Ahnung von HTML!

      Gruß Frank