16. september 2005 - 13:14Der er
19 kommentarer og 1 løsning
hvorfor bruger man det tegn
Jeg har lige et dumt spm. Jeg har længe undret mig, når jeg har læst diverse spm her på EXP at når folk skriver noget kode bruger de \" istedet for bare "
dette eksempel er copy/paste fra et andet spm: <INPUT type=\"Button\" onClick=\"window.close()\">
det ville jeg normalt bare skrive sådan: <INPUT type="Button" onClick="window.close()">
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
I php bruges det til at escape " med tilsvarende som i asp man bruger en ekstra altså "" Hvis du laver en response.write "hej ""ib""" så bliver det udskrivet som hej "ib" Det er i vbscript, og jeg kan forestille mig at \" kommer fra jscript men altså samme funktionalitet
Vil tro det er fordi siden er blevet ændret gennem tiden, og den gang blev brugt addslashes() (php funktion), for at escape special tegn inden det blev smidt i databasen, og senere er der blevet brugt en anden metode, hvilket gør at gammelt data bliver dobblet escaped.
hvis du skal skrive <INPUT type="Button" onClick="window.close()"> så bliver det til response.write "<INPUT type=""Button"" onClick=""window.close()"">" i php ville det være echo "<INPUT type=\"Button\" onClick=\"window.close()\">";
cpufan >> det er muligt det er spild af tid, men det er kun "elendige" browsere som anerkender der ikke er gåseøjne omkring. Det er defineret i html standarden at det hedder type="button" og ikke bare type=butten -- Fx vil du givetvis opleve problemer hvis du skriver <input type=text value=hej med dig> frem for <input type="text" value="hej med dig"> -- Så det var vist et dårligt råd du kom med der ;o)
Der findes ikke elendige browsere, men elendige web-kodere, hvilket har gjort det nødvendigt for mange browser prdocenter at tillade mindre korrekt kode.
cpufan >> ok måske lød jeg lidt grov, men du vil se at FireFox, opera og IE og sikkert flere i eksemplet kun vil skrive "hej" i tekstboksen hvis der ikke er gåseøjne omkring "hej med dig". Selvfølgelig er det ikke det samme som at browseren er elendig, men mere som hmortensen skriver at koderen er elendig At du vælger ikke at benytte " omkring i html er det samme som hvis du vælger ikke at skrive stumme h´er i det danske sprog. Html er jo et sprog fuldstændig som det danske er et sprog, og jeg vil som dansker have et problem hvis ordet "Hvad" blev til "vad" osv... Derfor mener jeg principielt ikke at man bør afvige fra standarderne med mindre der er en og anden rigtig god grund :o)
Hmm jeg ser i det eksempel ikke noget alenestående html som er escaped, men jeg ser at " er escaped som \" i asp koden samt javascript koden i eksemplet -- som jeg ser det er der et par muligheder til dette Enten er det en bug på eksperten som gør at den i alle gamle spørgsmål laver disse ecape tegn, hvem ved der er jo en del bug i eksperten ;o) Eller også er det fordi man skrev det sådan engang i javascript og asp, men det tør jeg så ikke blive hængt op på eftersom jeg ikke kodede dengang :o/
Taget fra ovenstående link: Her --> <label id=\"daysuntil\" name=\"daysuntil\"></label> Her --><SCRIPT LANGUAGE=\"JavaScript\"> <!--
var SECOND = 1000; var MINUTE = SECOND * 60; var HOUR = MINUTE * 60; var raw; var sekunder = 0; var minutter = 0; var tmer = 0; Her --> setTimeout(\"daysBetween(2001, 2, 24)\",\"10\"); // daysBetween(2001, 2, 24) = år 2001, måned 2 (februar), dag nr. 24 i måneden.. (du skal oxo rette det nederst i javascriptet) function daysBetween(yr, mo, dy) { var nDate = new Date(); // current date (local) var nTime = nDate.getTime(); // current time (UTC) var dTime = Date.UTC(yr, mo - 1, dy); // specified time (UTC) var bTime = Math.abs(nTime - dTime); // time difference raw = bTime; tmer = inte(raw / HOUR - 1); raw = inte(raw - ((tmer + 1) * HOUR)); minutter = inte(raw / MINUTE); raw = inte(raw - (minutter * MINUTE)); sekunder = inte(raw / SECOND); if (tjekforsent(dTime - nTime) == \"True\") { Her --> daysuntil.innerHTML = \"Tiden er udløbet\"; } Her -->else if (tjekforsent(tmer) == \"True\") Osv...
busschou, hvis du læser min først post, er der en forklaring på det. Det er ikke n bug, men data gemt på en anden måde, og dermed blevet dobblet escaped.
hmortensen >> i givet fald vil jeg også mene at det så er en bug/fejl (kald det hvad man vil - noget som i mine øjne bør rettes op sammen med tusind andre fejl på exp) PS: jeg kan godt se forskel på \" og " uden man skriver "her" ;o) og så har du selv i din copypaste glemt at skrive "her" et par steder ;o)
hmortensen >> bare fordi noget har en forklaring god som dårlig, så er det jo ikke det samme som at det ikke er en bug/fejl ;o) Men anyway, det er jo sikkert derfor
Det er så i øvrigt nemmere at se at det er en fejl på eksperten hvis man ser på spørgsmål hvor det ikke er html koden men normal tekst med gåseøjne omkring fx spørgsmålet før http://eksperten.dk/spm/54030
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.