Newsgroup: it.comp.lang.javascript
Titolo: risultato nel frame centrale

Ciao a tutti,
ho una pagina web divisa in 4 html frames. Sto provando lo script copiato
sotto.
Come posso far in modo che il risultato della ricerca venga visualizzata nel
frame centrale?
TIA
----------------------------------------------------------------------------
<BODY>
<CENTER>
  <TABLE border=10 cellpadding=5 cellspacing=5>
    <TR align=center>
      <TD valign=center><SCRIPT>
        <!--
        function url(x)
        {
        if (x==0) return "
http://search.yahoo.com/bin/search?p=
"
        if (x==1) return "
http://www2.infoseek.com/Titles?qt=
"
        if (x==2) return "
http://www.altavista.digital.com/cgi-bin/query?q=
"
        if (x==3) return "
http://www-msn.lycos.com/cgi-bin/pursuit?query=
"
        if (x==4) return
"
http://www.excite.com/search.gw?searchType=Concept;category=default;mode=re
levance;showqbe=1;display=msn,hb;search="
        if (x==5) return
"
http://magellan.mckinley.com:8080/mckinley-cgi/iopcode.pl?query=
"
        if (x==6) return "
http://webfind.home.msn.com/cgi-bin/fts.dll?qu=
"
        return ""
        }
        function vaiURL(q,w) {
        window.location.href=url(q)+w
        return 0
        }
        //--> </SCRIPT>
        <FORM method="GET"
onSubmit="vaiURL(this.where.options.selectedIndex,this.what.value)">
          <B> Search
          <INPUT size=20 name=what> in </B>
          <SELECT name=where >
          <OPTION value="
http://search.yahoo.com/bin/search?p=
"
SELECTED>Yahoo
          <OPTION value="
http://www2.infoseek.com/Titles?qt=
">InfoSeek
          <OPTION
value="
http://www.altavista.digital.com/cgi-bin/query?q=
">Altavista
          <OPTION
value="
http://www-msn.lycos.com/cgi-bin/pursuit?query=
">Lycos
          <OPTION
value="
http://www.excite.com/search.gw?searchType=Concept;category=default;m
ode=relevance;showqbe=1;display=msn,hb;search=">Excite
          <OPTION
value="
http://magellan.mckinley.com:8080/mckinley-cgi/iopcode.pl?query=
">Mag
ellan
          <OPTION
value="
http://webfind.home.msn.com/cgi-bin/fts.dll?qu
">Microsoft
          </SELECT>
          <INPUT type=button value=SEARCH!
onClick="window.location.href=url(this.form.where.options.selectedIndex)+thi
s.form.what.value">
        </FORM>
      </TD>
    </TR>
  </TABLE>
</CENTER>
</BODY>
---------------------------------------------------------------------

top.frames['nometuoframe'].location.href='....';
consiglio: usa switch anziché l'elencone degli if (non cambia nulla ma è
concettualmente più corretto e dà IMHO una migliore leggibilità del codice)

 ha
scritto:

avevo appena letto il post precedente e tu mi hai preceduto con una risposta
analoga a quella che avrei dato io.
avevo qualche dubbio pero' xche' sono nuovo del newsgroup ed ho pensato la
cosa fosse meno scontata visto
che nel codice si richiama .asp che io non so....
Mi sa che pero' funziona solo su IE vero?
Io ultimamente cerco unpo' + di interoperabilita' anche se e' una faticaccia
x uno come me che sa solo quello che c'e' scritto sull'unico manuale che ha:
"J.Manger 'Il manuale JavaScript' McGrawHill 1996 pag. 500".
Be' li sopra ad es. non c'e' l'ombra di comandi 'switch' (come non esiste
'Else If')
Dubitando che non ci fosse, avevo provato a scriverlo ma avendo naturalmente
commesso qualche errore
non funziono' e cos'i' mi ero persuaso che 'switch' in JavaScript non
esistesse affatto: un vero peccato! :-(
Se avessi voglia di spiegarmi un po'...
...ci sono anche i break e un default?
--------------------------------
Inviato via 
http://usenet.libero.it

 'Else If')
molto bene....
switch esiste ed è anche comodissimo; break; serve ed è anche quasi
obbligatorio (a differenza di vbs, il case continua nei case successivi se
non interrotto con break; esiste default per tutti i casi non contemplati
Ti copio-incollo un esempio preso dalla guida di Jscript:
function MyObject() {
...}
switch (object.constructor){
   case Date:
   ...
   case Number:
   ...
   case String:
   ...
   case MyObject:
   ...
   default:
   ...
}

dimenticavo: non esiste elseif ma esiste else if (staccati), con la stessa
funzionalità

 ...ci sono anche i break e un default?
Yes.
switch(myvar){
    case 0:
        /* code; */
        break;
    case 1:
        /* code; */
        break;
    default:
        /* code; */
        break;



1000 grazie, brutta bestia l'ignoranza!:)
 
permettetemi di spendere ancora alcune parole sul manuale di cui prima ho
parlato un po' male:
malgrado queste ed altre lacune, bisogna riconoscere all'autore il pregio di
non essere mai sceso su codice proprietario x cui attenendocisi si hanno +
probabilita' di essere visti con facilita' su + OS .
Ha altresi' il pregio di allungarsi verso Java con esempi di codice .java
che x iniziare sono sicuramente meglio delle
schifezze dei vari wizard (IMO).
Regards,
 Mattex


a proposito di ignoranza, mi ero dimenticato di dire
che di Javascript non ne so nulla :-) quindi grazie
per la risposta ma dov'è che devo mettere
top.frames['nometuoframe'].location.href='....';
e poi ['nometuoframe'] quale, quello di destinazione
o quello da cui parte la ricerca???
e location.href='....'; tra gli apici che ci devo mettere???
mi scuso ancora per la completa ignoranza
TIA


Vedo che non credi + si tratti di una leggenda metropolitana che
porta-bene-trattare-bene tutto cio' che finisce * x ( vedi flex :-| )
(tutto il newsgroup certamente ci guadagna!) grazie di cuore
Regards,
 Mattex


 mi scuso ancora per la completa ignoranza
Ignoriamo tutti qualcosa, e anche le cose che adesso padroneggiamo un tempo
non le conoscevamo affatto.
Non c'e' bisogno mai di scusarsi per qualcosa che si ignora, anzi e' da
lodare chi vuole approfondire la propria conoscenza e spende il giusto tempo
per farlo, "sapendo di non sapere".


 (tutto il newsgroup certamente ci guadagna!) grazie di cuore
Di niente, ma non ho ben capito il tuo post.. ^^"


> A parte che avrebbe fatto comodo avere l'effettiva struttura del
frameset..
-------------------------------------------------------------------------
<frameset rows="97,798*" cols="179,1084*" border="0.05" framespacing="0.05"
bordercolor="#003399" frameborder="NO">
  <frame name="cornerFrame" scrolling="NO" noresize src="logoframe.html" >
  <frame name="topFrame" scrolling="NO" noresize src="titoloframe.html" >
  <frame name="leftFrame" scrolling="auto" noresize src="tabframe.html">
  <frame name="mainFrame" scrolling="auto" noresize src= "Intro.html">
</frameset>
-------------------------------------------------------------------------
ho provato ad inserire il tuo codice. Così come lo incollo quì sotto mi da
questo errore: "Previsto Identificatore" Ho IE6.
Grazie ancora!!!
----------------------------------------------------------------------------
<body bgcolor="#006699" link="#003399" vlink="#003399" alink="#003399">
<div align="center"></div>
<table border=0 cellpadding=5 cellspacing=5 width="400" height="100"
align="right">
  <tr align=center>
    <td valign=center height="63">
      <script language="JavaScript">
        <!--
        function url(x)
        {
        if (x==0) return "
http://search.yahoo.com/bin/search?p=
"
        if (x==1) return "
http://www2.infoseek.com/Titles?qt=
"
        if (x==2) return "
http://www.altavista.digital.com/cgi-bin/query?q=
"
        if (x==3) return "
http://www-msn.lycos.com/cgi-bin/pursuit?query=
"
        if (x==4) return
"
http://www.excite.com/search.gw?searchType=Concept;category=default;mode=re
levance;showqbe=1;display=msn,hb;search="
        if (x==5) return
"
http://magellan.mckinley.com:8080/mckinley-cgi/iopcode.pl?query=
"
        if (x==6) return "
http://webfind.home.msn.com/cgi-bin/fts.dll?qu=
"
        return ""
        }
        function vaiURL(q,w) {
        top.frames["Intro.html"].location.href=url(q)+w;
        return false;
        }
        //--> </script>
      <form method="GET">
        <b>
        <input size=20 name=what>
        </b>
        <select name=where >
          <option value="
http://search.yahoo.com/bin/search?p=
"
SELECTED>Yahoo
          <option value="
http://www2.infoseek.com/Titles?qt=
">InfoSeek
          <option
value="
http://www.altavista.digital.com/cgi-bin/query?q=
">Altavista
          <option
value="
http://www-msn.lycos.com/cgi-bin/pursuit?query=
">Lycos
          <option
value="
http://www.excite.com/search.gw?searchType=Concept;category=default;m
ode=relevance;showqbe=1;display=msn,hb;search=">Excite
          <option
value="
http://magellan.mckinley.com:8080/mckinley-cgi/iopcode.pl?query=
">Mag
ellan
          <option
value="
http://webfind.home.msn.com/cgi-bin/fts.dll?qu
">Microsoft
        </select>
        <input type="button"
onClick="vaiURL(this.where.options.selectedIndex,this.what.value);">
      </form>
    <p>&nbsp;</p></td>
  </tr>
</table>

>         top.frames["Intro.html"].location.href=url(q)+w;
Il frame si chiama mainFrame, non Intro.html

 top.frames["Intro.html"].location.href=url(q)+w;
Qui ci va il *nome* del frame, non il nome della pagina :)
Ergo sarebbe:
top.frames["mainFrame"].location.href=url(q)+w;
(supponendo il resto del codice sia corretto)


continua a darmi lo stesso errore !!!

Ma sei sicuro che l'errore sia lě?
Non č che č quel button con onClick=this.where....this č la form? (vista
cosě secondo me potrebbe essere il button, che correttamente non sa cosa sia
il where, perň non ci giurerei che questo button venga preso come il
type=submit della form)...
prova ad esplicitare: document.forms['tuaform']['where'] per riferirsi alla
select (anziché this.where)
Purtroppo non ho tempo di studiarmi bene il sorgente; io sposterei anche lo
script nel tag head (non dentro a una tabella...)

 continua a darmi lo stesso errore !!!
Mhm. Infatti ero dubbioso (non utilizzo "penso" quando ho certezze).
Non mi pareva che il msg d'errore fosse quello relativo ad un frames non
trovato.. Do' un occhiata al codice.
Ah.. trovato. Colpa mia. Ti ho detto di o mettere tutto nella form (e il
codice era corretto in quel caso) oppure spostare tutto sul pulsante.. nel
secondo caso, pero', andava fatta una modifica al codice originario. Ovvero:
<input type="button"
onClick="vaiURL(this.form.where.options.selectedIndex,this.form.what.value);">
come vedi, e' cambiato da "this.where.options" a "this.form.options", questo
perche' prima il codice si trovava nel tag FORM, e quindi il "this" era
riferito all'oggetto form.. mentre adesso il codice si trova nel tag INPUT..
quindi il "this" si riferisce al pulsante, ed il pulsante non ha,
ovviamente, alcun "controllo" chiamato "where".. ergo bisogna riferirsi a
"this.form", ovvero alla form che contiene "this" (in questo caso il ns
pulsante).


WOW funzionaaaaaaaaa
siete stati  gentilissimiiiiiiiiiiiiiiiiiiii, grazie ZERO e Cristiano
CIAO