Newsgroup: it.comp.lang.javascript
Titolo: CTRL + f

Ciao a tutti,
tempo fa ho fatto la stessa richiesta ma non si era arrivati ad una
soluzione.
Avete presente cosa succede quando, visitando una pagina web si preme la
combinazione di tasti CTRL + f?
Esce la finestra "cerca nella pagina".
Avrei bisogno di fare aprire questa finestra con un link, pensavo si
potesse farlo col javascript.
Si tratta di una pagina html con solo testo che deve essere messa in un
floppy, non è on-line e non devo mettere altri files. La pagina contiene un
elenco lunghissimo di link e altro. Devo fare in modo di trovare la giusta
parola nell'elenco nel modo più semplice e pensavo di usare qualcosa come
CTRL+f.
Vi prego di aiutarmi nella maniera più semplice, è una cosa che mi serve
per la tesi.
--
Marco (alias mm)
----------
Il nuovo newsgroup sulla pubblicità?
http://members.xoom.it/pubblicitari
----------

 serve per la tesi.
Dubito esista una maniera semplice; se cerchi con google comunque trovi di
tutto.
Senza testarlo, questo mi sembra interessante:
http://www.howtocreate.co.uk/jslibs/htmlhigh/findinpage.html
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M. -- 

 
http://www.howtocreate.co.uk/jslibs/htmlhigh/findinpage.html
grazie ma trova solo il primo risultato. E se ci sono più parole uguali
nella pagina?
Volete che vi faccia vedere il file, così magari mi date un consiglio sul
concreto?


 sul concreto?
Quello che ti ho passato mi sembra una buona base di partenza; vuoi
implementare quindi anche il "find next"?
Io passo, sentiamo se qualche ultravolenteroso...(hai cercato in google,
vero?)


 CTRL+f.
Lascia perdere le caratteristiche di *un* browser su *un* OS che gira
solo su *una* piattaforma: javascript e` per il web. Scrivi i link (o
comunque il testo) in una serie di div con ID="link_n_x" dove ad "x"
sostituisci un intero progressivo, poi effettui la ricerca.
Oppure potresti mettere tutto in una struttura dati... guarda qui:
 
http://www.crossbow.it/icljs/localsearch.html
-- 
Splendente in eta` acerba di passione
Rosso fiammante
Ma senza eta` matura
Marcia impostura

 google, vero?)
si, ma trovo solo cose come quelle che hai detto tu


   
http://www.crossbow.it/icljs/localsearch.html
č meglio che vi faccia vedere di cosa parlo...
comunque grazie,
mm

A questo indirizzo potete vedere la pagina:
http://xoomer.virgilio.it/pubblicitari/dati2.htm
non devo e non posso modificare la parte dei dati, devo solo aggiungere
all'inizio un semplice comando, magari un link che faccia aprire la
finestra FIND di Internet Explorer (per capirci, quella che appare premendo
CTRL + F).
Supponete di voler cercare la parola "mit" all'interno della pagina. Col
FIND aperto basta cliccare ogni volta su TROVA SUCCESSIVO per scorrere fra
le varie parole "mit" all'interno del testo.
Mi sareste di grande aiuto,
mm

 FIND
se avete altre soluzioni veloci ed automatiche dite pure

 č meglio che vi faccia vedere di cosa parlo...
tu guarda bene quella :)


 
http://xoomer.virgilio.it/pubblicitari/dati2.htm
xoom fa il solito casino cona la sua barra, non carico la pagina. sorry.


nella pagina?
Ne sei sicuro? Ho provato lo script con IE 6.0 e Mozilla 1.7b e trovo
tutte le ripetizioni di una parola nella pagina. Per esempio:
<body >
<script>
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>' );
}
</script>
aa<br/>
mit<br/>
bb<br/>
cc<br/>
aa<br/>
dd<br/>
ee<br/>
mit<br/>
ff<br/>
aa<br/>
gg<br/>
hh<br/>
mit<br/>
ii<br/>
ll<br/>
mm<br/>
nn<br/>
</body>
Se inserisco come parola di ricerca "mit" e continuo a premere il
button trovo tutte le 3 "mit" presenti nella pagina.
BTW con i browser Geko per far apparire la finestra di ricerca basta
chiamare la funzione window.find senza parametri, i.e. window.find(),
non ho idea se esista qualcosa di simile in IE (non la stessa funzione
perche' non e' un metodo di window implementato in IE).
'bye

 tutte le ripetizioni di una parola nella pagina. Per esempio:
si, ma solo perchè la pagina è corta e hai sempre in vista il pulsante
mm



Allora il problema non e' lo script che non funziona, ma di avere
sempre disponibile/visibile nella pagina il form di ricerca. Le cose
cambiano, non e' piu' una questione di  "come fare una ricerca nella
pagina" :-)
Un modo per avere la form sempre a disposizione e' di inserirla in un
elemento <div> e fare in modo che questo rimanga in una posizione
"fixed". Le soluzioni per farlo sono diverse, la piu' comoda (se
applicabile) e' tramite l'uso di CSS (nemmeno una riga di Javascript).
'bye

Scusa ma forse io non ho capito bene:
tu dici che è possibile fare una cosa come in questa pagina:
http://javascript.internet.com/messages/find-in-page.html
però mettendo FIND IN PAGE, modulo e pulsante, sempre in vista?
MAGARI


MAGARI
Si puo' fare. Per esempio (prendo il codice di 
www.howtocreate.co.uk
per la ricerca):
========
<html>
<head>
<script type="text/javascript">
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 );
}
}
</script>
<style type="text/css">
body{
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 0px 0px;
	color: #000;
}
.bdiv {
	margin: 0px 0px 0px 0px;
	padding: 3.5em 10px 0px 10px;
	text-aling:left;
	font-family:Arial;
	font-size:1em;
}
.tdiv{
	position:absolute;
	left:0px;
	top:0px;
	width:auto;
	padding:5px;
	height:1.1em;
	border:1px solid #0f0f0f;
	background-color:#ffffff;
	font-family:Arial;
	font-size:1em;
	line-height:1em;
}
form{
	font-family:Arial;
	font-size:0.8em;
	line-height:0.8em;
}
@media screen {
 body>.tdiv{
	position:fixed;
 }
}
</style>
<!--[if IE]>
<style type="text/css">
html{
	overflow-y: auto;
}
body{
	overflow-y: hidden;
}
.bdiv{
  height: 100%;
  overflow: auto;
}
</style>
<![endif]-->
</head>
<body >
<div class="tdiv" id="search">
<!--
 Form per ricerca nella pagina
 posizione fissa in alto a sinistra
-->
<script type="text/javascript">
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>' );
} else {
	document.write(" Usare Ctrl-F per cercare nel testo");
}
</script>
</div>
<div class="bdiv">
<!--
 Qui ci metti il contenuto della tua pagina
-->
prima linea del tuo testo<br/>
1<br/>2<br/>3<br/>4<br/>5<br/>
6<br/>7<br/>8<br/>9<br/>10<br/>
1<br/>2<br/>3<br/>4<br/>5<br/>
6<br/>7<br/>8<br/>9<br/>20<br/>
1<br/>2<br/>3<br/>4<br/>5<br/>
6<br/>7<br/>8<br/>9<br/>30<br/>
1<br/>2<br/>3<br/>4<br/>5<br/>
6<br/>7<br/>8<br/>9<br/>40<br/>
ultima linea del tuo testo<br/>
</div>
</body>
</html>
========
La form se ne rimane fissa in alto nella pagina ed il testo scorre
normalmente al di sotto di essa.
Testato con Mozilla 1.7b e IE 6.0 (Opera non dispone dei due metodi
usati dallo script per la ricerca del testo).
'bye

 chiamare la funzione window.find senza parametri,
Molto interessante, e mi sono preso nota caso mai mi servisse...
Pero' sbaglio, o non funziona con NN6?1?

 <html>
Ti ringrazio infinitamente, ma sei sicuro che funzioni?
http://xoomer.virgilio.it/pubblicitari/ng.htm
con IE5 non va nulla, ho fatto qualche errore?
mm

> con IE5 non va nulla, ho fatto qualche errore?
Con IE6 compare all'apertura un errore "Costante string senza terminazione"


con IE5 non va nulla, ho fatto qualche errore?
Alcune righe dello script sono state spezzate nell'invio del
messaggio, rimettile a posto.
'bye

Con IE6 compare all'apertura un errore "Costante string senza terminazione"
Alcune righe dello script sono state spezzate nell'invio del
messaggio.
Una stringa 
'x
y'
Non piace a IE, preferisce 'xy'
Idem per i commenti spezzati :-)
'bye
'bye

 messaggio, rimettile a posto.
adesso mi mandi a quel paese,
NON CI RIESCO, non conosco la sintassi javascript e anche se ho provato a
togliere tutta una serie di andate a capo non mi cambia nulla.
Ti prego mi mandi per posta un txt senza interruzioni di riga. Sto
impazzendo.
Domattina devo andare dal prof e... dai per favore
marmo...@TOGLIQUESTOlibero.it
grazie davvero, poi lo pubblico su web e ci metto il tuo nome


Vorrei mostrarvi una soluzione (in php perņ) fatta da Leonardo Serni:
http://alnitak.ctt.it/mm
--
Marco (alias mm)
----------
Il nuovo newsgroup sulla pubblicitą?
http://members.xoom.it/pubblicitari
----------