Visualizzazione risultati 1 fino 19 di 19

Discussione: [javascript] spiegazione comando

  1. #1
    Guest

    Predefinito [javascript] spiegazione comando

    cosa mi dovrebbe dare questo comando?perche nn mi da niente come risultato..

    Codice HTML:
    function ciao(str){
    var pippo = window.location.search.substring(str);
    document.write(pippo);;
    }
    Codice HTML:
    <table>
      <tr><th>Input</th><td><input type="text" id="input" size="40" value="www.ciao.it/index.html?code=1"></td></tr>
      <tr><th>Calculate</th>
      <td style="text-align:center">
      <input type="button" onclick="document.getElementById('ciao').value = ciao(document.getElementById('input').value)" value="vai">
      <tr><th>Result</th><td><input type="text" id="ciao" size="40"></td></tr>
    </table>

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da guidewebdesign Visualizza messaggio
    cosa mi dovrebbe dare questo comando?perche nn mi da niente come risultato..

    Codice HTML:
    function ciao(str){
    var pippo = window.location.search.substring(str);
    document.write(pippo);;
    }
    Codice HTML:
    <table>
      <tr><th>Input</th><td><input type="text" id="input" size="40" value="www.ciao.it/index.html?code=1"></td></tr>
      <tr><th>Calculate</th>
      <td style="text-align:center">
      <input type="button" onclick="document.getElementById('ciao').value = ciao(document.getElementById('input').value)" value="vai">
      <tr><th>Result</th><td><input type="text" id="ciao" size="40"></td></tr>
    </table>
    Il primo codice da te postato è un codice javascript (o meglio ecmascript) che consiste nel dichiarare una funzione di nome ciao che accetta un parametro, str.
    Il corpo della funzione è composto da due istruzioni: la prima è una dichiarazione+assegnazione di variabile, definisce la variabile pippo e gli assegna il valore restituito dalla chiamata alla funzione substring della stringa window.location.search (la parte dell'URL della pagina corrente dopo il punto interrogativo) passando come parametro str; la seconda istruzione è una chiamata al metodo write dell'oggetto document passando come parametro la variabile appena definita, pippo.
    La funzione substring esegue questo: prende la stringa su cui è chiamata, la taglia a partire dall'n-esmimo carattere (indicato dal primo parametro) fino all'm-esimo carattere (indicato dal secondo parametro) e restituisce la stringa ottenuta. Se il secondo parametro è omesso, viene tagliato solo l'inizio.

    Il metodo write dell'oggetto document non è invece legato al javascript, ma al DOM, è un metodo che permette in qualche modo di modificare il documento caricato dal browser. Il suo funzionamento è un po' complesso e il suo utilizzo è sconsigliato a favore di altri metodi che permettono diversi vantaggi.

    La funzione ciao non restituisce alcun valore, quindi l'assegnazione effettuata all'evento onclick assegna sempre il valore undefined.

  3. #3
    Guest

    Predefinito

    e se lo scrivo così mi ritorna un valore?

    Codice HTML:
    function ciao(str){
    var pippo = window.location.search.substring(str);
    return pippo;
    }

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Certo, così restituisce il valore della variabile pippo, puoi anche semplificare:
    Codice:
    function ciao(str){
    return location.search.substring(str);
    }

  5. #5
    Guest

    Predefinito

    però non mi stampa nulla..

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Questo probabilmente poiché l'URL della pagina non contiene la search query, ovvero la parte dopo il punto interrogativo. Aggiungi alla fine dell'URL un punto di domanda e dopo di questo altri caratteri a tuo piacere

  7. #7
    Guest

    Predefinito

    certo che la contiene

    www.ciao.it/index.html?code=1

    il problema è che come input riceve il link ma come output non mi da nulla :(
    comunque cosa dovrebbe uscire?
    Ultima modifica di guidewebdesign : 03-11-2010 alle ore 23.02.28

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Nel #input devi scrivere un numero, non un URL, rileggi attentamente la descrizione dello script.

  9. #9
    Guest

    Predefinito

    mi spiego meglio voglio ricavare solo il numero "1" che c'è nel link, come posso fare?

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Quindi a te serve uno script che, dato un URL restituisca il valore del parametro code presente nella search query?

  11. #11
    Guest

    Predefinito

    si dato che se era in php era molto più semplice ma sto cercando di farlo in js

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Puoi usare le espressioni regolari:
    Codice:
    function ciao(str){
    return str.match(/\?.*&?code=([^&]*)/)[1];
    }
    Ultima modifica di karl94 : 03-11-2010 alle ore 23.46.37

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Prova con il ricavare tutto l'indirizzo (quindi anche la query-string) con:

    Codice HTML:
    url = window.location.toString();
    poi, dalla stringa url puoi ricavare le varie cose, ad esempio con le espressioni regolari oppure con le varie funzioni/metodi delle stringhe/array (explode()...).

    Ciao!

    EDIT: anticipato, ma lascio ugualmente
    Ultima modifica di alemoppo : 03-11-2010 alle ore 23.46.18

  14. #14
    Guest

    Predefinito

    explode() è di php non di javascript ;) in javascript c'è split() XD
    Comunque @guidewebdesign ho dato un occhiata al tuo sito... ed ho notato che hai copiato pari pari le guide di html.it... i loro contenuti sono coperti da diritti d'autore, quindi copiarli è plagio, che è un reato... oltretutto non citi nemmeno la fonte.

    Quantomeno rielabora il tutto con parole tue e dagli un ordine diverso... tanto per salvare almeno le apparenze.

    ciao...
    Ultima modifica di opens : 04-11-2010 alle ore 05.22.41

  15. #15
    Guest

    Predefinito

    @opens la mia era una prova con le guide di html.it le sto creando io prendendo spunto da là solo che ho provato a prenderne un pezzo loro per vedere come potevo visualizzarle sul sito :) ora le ho tolte per non rischiare..grazie me ne ero dimenticato :)
    comunque grazie per le dritte :)
    volevo sapere se il link lo devo prendere dalla barra degli indirizzi come posso fare?

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da guidewebdesign Visualizza messaggio
    volevo sapere se il link lo devo prendere dalla barra degli indirizzi come posso fare?
    tel'ho detto prima!... tramite questo:

    Codice HTML:
    window.location.toString();
    ciao!

  17. #17
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Seguendo gli standard del w3c ( http://www.w3.org/TR/Window/#location ):
    Codice:
    location.href
    Contiene l'URI.

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da javascripter Visualizza messaggio
    Seguendo gli standard del w3c ( http://www.w3.org/TR/Window/#location ):
    Codice:
    location.href
    Contiene l'URI.
    proprio nel tuo link c'é anche il metodo toString()
    dom::DOMString toString();
    tra l'altro, per quel pochissimo che conosco di OOP, il metodo toString() è fatto apposta per leggere e ricavare informazioni sulle proprietà dell'oggetto.
    Caratteristica fondamentale della OOP (che tra l'altro la rende robusta) è l'incapsulamento, che in pratica consiste nell'usare i metodi, invece di ricavare direttamente le proprietà.... Quindi utilizzare i vari metodi, cosiddetti set mutator e get mutator, anche se il toString() non è proprio un get, ma si avvicina

    Ciao!
    Ultima modifica di alemoppo : 05-11-2010 alle ore 23.50.40

  19. #19
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Ogni oggetto ha il metodo toString, se ci fai caso nel link non c'è scritto che toString deve necessariemente restituire l'URI.

    Ragionando in questo modo potrei addirittura utilizzare location, dato che è un oggetto e in questo modo va a richiamare automaticamente toString.

    Mentre per l'attributo href c'è scritto esplicitamente:
    The value of the href attribute MUST be the absolute URI reference [...]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •