14. december 2003 - 04:18Der er
55 kommentarer og 2 løsninger
Problemer med < og innerHTML
Jeg prøver med innerHTML at angive en ny tekst for en tabelcelle, men problemet er at der i teksten er et <, som ikke skal læses som en del af et tag men bare som et <.
Hmmm...jeg har haft mange problemer med JavaScript i dag, som du nok godt ved ;) De har dog allesammmen været mere eller mindre logiske...men den her er dælme kringlet :(
Hvodden dælen kan det være, at det virker, hvis udskiftningen sker i funktionen, men ikke, hvis man gør det på et hvilkensomhelst andet tidspunkt, før strengen rammer funktionen ?-)
1. innerText er noget proprietært MS-skrammel - og derfor ubrugeligt på offentligt tilgængelige sider. 2. Hvis der også skal paste's HTML ind, kan innerText ikke bruges - heller ikke i IE
nyp >> Ehhhh .... fidusen ved innerHTML er jo netop at man kan håndtere strenge, der indeholder HTML (eller andre) tags. Det er altid godt at læse dokumentationen - men så skal man også læse, hvad der står ;o) innerHTML kan ikke indsætte HTML-tags i et textarea. Forsøg på dette vil resultere i en fejl. I alle andre elementer virker innerHTML fint.
Okay, lad mig opsummere og se om jeg har forstået det her rigtigt...og ret mig lige hvis jeg ikke har :)
1. innerText kan kun bruges til IE og ikke til Netscape m.fl. Korrekt?
2. Jeg kan bruge regular expressions, men hvad jeg ikke er klar over er, om det er den bedste måde, eller i det hele taget den eneste måde at få < ind i TEXTAREA?
Hvad er der at forklare? Jeg vil bare have noget tekst, der indeholder et < ind i TEXTAREA ;)
Og et tredje spørgsmål...nu har jeg tjekket alle jeres fine forslag, men jeg er stadig ikke helt klar over hvorfor f.eks. roenvings forslag uden replace ikke virker.
Eller hvorfor oktale koder er bedre end disse &...;? :)
1. innerText kan kun bruges til IE og ikke til Netscape m.fl. Korrekt?
2. Jeg kan bruge regular expressions, men hvad jeg ikke er klar over er, om det er den bedste måde, eller i det hele taget den eneste måde at få < ind i TEXTAREA?
3. Nu har jeg tjekket alle jeres fine forslag, men jeg er stadig ikke helt klar over hvorfor f.eks. roenvings forslag uden replace ikke virker.
4. Hvorfor er oktale koder bedre end disse &...;?
Kan det gøres mere tydeligt end det var i forvejen? ;)
1. innerText er M$ only, ja !-| 2. Lyder som den eneste måde, og 3. forklaringen er sandsynligvis, at oversættelsen til den repræsentation, du har behov for i html-koden vil ske før udførelsen, hvis ikke man venter til sidste øjeblik ... 4. Oktale koder er 'javascriptsk'
Nu bliver jeg mere og mere i tvivl .... er det et textarea, du skal indsætte i? I så fald bruger du blot 'value':
<textarea id="ib"></textarea>
<script type="text/JavaScript"> var s = "hjkhkjhkh<hjhjh hjhkjh"; document.getElementById("ib").value = s; </script>
Hvad etities angår, så bruger man HTML-entities ('ø', 'æ', osv), når man skriver HTML og skal bruge et tegn, der ikke er med i det internationale standard-alfabet. I JavaScript kan disse ikke bruges. Her bør man i stedet bruge oktal-tal værdien af tegnets keycode ... og så escape denne værdi med et '\' foran. Sådan er de to standarder skruet sammen - og derfor bør man gøre sådan :) /mvh og god Jul *<:o)
olebole, det var fordi du nævnte TEXTAREA, jeg kom til at skrive det...MEN faktisk skal jeg have et < ind i både en tabelcelle og et TEXTAREA...men jeg har fået det løst nu :)
Okay ... grunden til, jeg oprindelig skrev om textareas, var nyp's kommentar (15/12-2003 15:48:47). Her misforstod han MS's reference. InnerHTML fungerer fint med tags - men MS skriver blot, det ikke fungerer i textareas. Det var blot den misforståelse, jeg prøvede at rette op på ... derfor min snak om textareas ;o) /mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
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.