Originariamente inviato da Mich_
il primo if dovrebbe essere:

if(self.location.search != "") {

altrimenti il tuo programma va ad applicare metodi di stringa a qualcosa che una stringa non e` (e ti da` errore).

Comunque io userei document.location.search , altrimenti in caso di frame non sai cosa ti prende.

Ciao
Michele
per la if mi ha preceduto (confermando) Mich_
Nel caso di frame con la mia funzioncina si può fare così per prendere la querystring del frameset
codice:
qs = objQueryString(top.location.search)
for(x in qs) 
	document.write(x+': '+qs[x]+'
')