Hur gör man med hjälp av javascript att skriva ut en specifik querystring? <javascript> något?
skriver ut Querystring?
6 svar · 369 visningar · startad av voigtann1
gött! precis vad jag behövde :D
Ibland är enklare bättre. Jag har själv gjort ett liknande skript som kan laddas ner från
http://www2.hemsida.net/dtd/page2/parsequery.js
Högerklick och spara som. Inget illa sagt om spangos lösning, den har till och med fler funktioner, men min lösning är liten och elegant och jag tänkte alltså göra lite reklam för den.
Inget illa om det heller :), men jag skulle föreslå att du lägger in lite avkodning i det. Om formulärsfältet ex heter "foo bar" kommer det att generera scriptfel eftersom du använder eval.
Ett litet exempel som avkodar %..., mellanslag och även hanterar flera fält med samma namn (ex. multiple-select);
function querystring(){
if(!location.search){ return null; }
var querystr=location.search.split("?")[1].replace(/\+/g," ");
for(var n=0;n<querystr.split("&").length;n++){
var name=unescape(querystr.split("&")[n].split("=")[0]);
var value=unescape(querystr.split("&")[n].split("=")[1]);
if(this[name]){
if(typeof(this[name])=="object"){
this[name][this[name].length]=value;
}else{
this[name]=new Array(this[name],value);
}
}else{
this[name]=value;
}
}
}
var foo = new querystring();
document.write(foo['foo bar']);
Jojoxx skrev:
Om formulärsfältet ex heter "foo bar" kommer det att generera scriptfel eftersom du använder eval.
Men ett namn på ett formulärsfält kan väl ändå inte innehålla mellanslag?
http://www.w3.org/TR/html401/types.html#type-id
Ok, men säg "foo:bar" då, samma sak. ;) Plus att innehållet i fältet bör kunna innehålla det. Det avkodas på samma sätt.