Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedon syöttö linkissä JavaScriptille

jjude [12.04.2018 14:51:55]

#

Mitään en nettiohjelmoinnistakaan ymmärrä, mutta yhtä koodia hyödyntänyt ja nyt tuottaa "erikoismerkit" vaivaa.

Annan tietoja sivulle perinteiseen tapaan näin:
HTTP://www.omasivu.fi/kansio/sivu.html?data­=123456&muuta=098765

Luen ne tällä javascriptillä muuttujiin:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

Homma toimii hyvin, mutta välilyönti tulostuu %20 ja tietty muutkin erikismerkit kuten ääkköset jne. noilla %-jutuilla.
Onko mitään tehtävissä?

VNabokov [12.04.2018 15:51:29]

#

En testannut, mutta kokeile:

function getUrlVars() {
    var vars = {};
    var url = encodeURIComponent(window.location.href);
    var str = decodeURIComponent(url);
    var parts = str.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

EDIT: Fiksailin, pitäisi toimia.

jjude [12.04.2018 18:07:40]

#

Ei vaikuttanut mitään?!?!
Voiko syy olla muussa koodissa joka käyttää tuota palautetta vars ?

groovyb [12.04.2018 19:37:35]

#

var teksti = "Terve%20maailma!"
var muunnettu = decodeURIComponent(teksti)
alert(muunnettu) //Terve maailma!

jjude [12.04.2018 21:21:11]

#

groovyb kirjoitti:

var teksti = "Terve%20maailma!"
var muunnettu = decodeURIComponent(teksti)
alert(muunnettu) //Terve maailma!

Esimerkkisi toimii ok.

Eli näin toimii decodeURIComponent(getUrlVars()["otsikko"])
Syöte annettava muodossa HTTP://......?data=xyz.csv&otsikko=kkkk%20kkk

Kiitos!

Metabolix [13.04.2018 18:32:00]

#

Oikea ratkaisu on dekoodata sekä avaimet että arvot jo funktion sisällä:

vars[decodeURIComponent(key)] = decodeURIComponent(value)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta