Normalmente si può ottenere la stringa di ricerca (search string) attraverso la proprietà document.location.search.
Ma se si viene dirottati sulla pagina 404 significa che l'URI non è più disponibile attualmente, ma possiamo provare ad ottenere informazioni sul precedente tramite document.referrer
Detto questo andremo a "catturare" la stringa di ricerca attraverso la manipolazione della stringa e ad esaminarla facendo in modo che il documento restituisca quanto previsto.
codice:
var searchS=document.referrer.split("?")[1]
con solo questa riga otterremo tutta la parte che sta dopo il "?".
Spiegazione: document.referrer ci dà tutto l'indirizzo (indirizzosito?search=parola1+parola...).
Su questo effettuiamo una divisione con "split" laddove c'è un "?" e andiamo a prendere non il primo valore dell'Array ottenuto ([0]), ma il secondo ([1)].
Ovviamente per continuare dovrei sapere quale parola viene utilizzata come key per effettuare la ricerca.
Generalmente la sintassi è "?search=parola1+parola2+parola3".
Supponiamo quindi che le nostre key sono "search" e "+".
Innanzitutto eliminiamo il search (a noi interessano solo le parole divise dal "+").
codice:
searchS=searchS.replace("search=","");
Potremmo anche fare tutto in una sola istruzione:
codice:
var searchS=document.referrer.split("?")[1].replace("search=","");
A questo punto la variabile searchS conterrà "parola1+parola2+..."
Andiamo di nuovo ad usare split per ottenere un Array:
codice:
myArray=searchS.split("+");
Ora creiamo la frase che vogliamo ottenere iterando l'Array:
codice:
var messaggio = "Le parole ";
for (i=0; i<myArray.length;i++){
messaggio+=myArray[i];
}
messaggio+=" non sono contenute in questo blog!"
Alla fine la variabile conterrà il messaggio completo.
Possiamo inserirlo nella pagina con
codice:
var msg=document.createTextNode(messaggio)
document.body.appendChild(msg);