Suchfunktion in HTML einbinden!
Frank
- html
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
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
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