Avatar billede themepark Nybegynder
14. december 2003 - 04:18 Der 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 <.

Jeg har prøvet med \< men det hjalp ikke :(
Avatar billede roenving Novice
14. december 2003 - 04:19 #1
virker &lt; ikke ?-)
Avatar billede themepark Nybegynder
14. december 2003 - 04:30 #2
Hmmm...den mulighed havde jeg glemt *G* Men når man kan skrive \" og \' burde der så ikke være noget lignende for <?
Avatar billede roenving Novice
14. december 2003 - 04:33 #3
Jeg ved faktisk ikke, om den vil nå at blive oversat, men den oktale værdi er: \74

-- og velbekomme -- igen '-)
Avatar billede themepark Nybegynder
14. december 2003 - 04:33 #4
Hmmm...jeg mente nu noget man kan skrive sammen med \ så du er lidt for hurtig denne gang *G*
Avatar billede roenving Novice
14. december 2003 - 04:44 #5
< har vel ingen betydning i javascript, når den bare står i en streng ...

men jeg måtte helt hen omkring enten &lt;&lt; eller en anden kombination med en eller to af ascii-værdien: &#60;
Avatar billede themepark Nybegynder
14. december 2003 - 04:47 #6
Jo, hvis det efterfølges af et bogstav, så anses det for at være starten på et tag :(
Avatar billede roenving Novice
14. december 2003 - 04:57 #7
Foreløbig har jeg da fundet på at gøre det af to omgange !-)

-- men hvorfor det skal være så skørt ved jeg ikke ...
Avatar billede themepark Nybegynder
14. december 2003 - 04:58 #8
Øhm...gøre hvad? Nu er jeg ikke helt med...
Avatar billede roenving Novice
14. december 2003 - 04:59 #9
Først skrive en dobbelt << og så bagefter sætte .innerHTML += "A" ...
Avatar billede themepark Nybegynder
14. december 2003 - 05:00 #10
Så det er altså hvis man vil skrive <A?
Avatar billede roenving Novice
14. december 2003 - 05:01 #11
Ja, det kunne den godt, men det virker skørt !-)
Avatar billede themepark Nybegynder
14. december 2003 - 05:02 #12
Ja, det synes jeg sgu også...hmm...prøver at lade spørgsmålet stå åbent...måske der er nogle andre, der ved noget mere om det :)
Avatar billede themepark Nybegynder
14. december 2003 - 05:26 #13
Jeg må sgu indrømme...nogle gange laver folk herinde VIRKELIG noget genialt :D

http://www.eksperten.dk/spm/349924

Tjek indlægget @ 08/05-2003 17:04:21

:)
Avatar billede roenving Novice
14. december 2003 - 05:35 #14
Den har jeg også brugt flittigt, senest 04:33:15 ...
Avatar billede themepark Nybegynder
14. december 2003 - 05:36 #15
LOL...ja okay...men jeg har altså først lige opdaget den ;)
Avatar billede roenving Novice
14. december 2003 - 05:39 #16
Jeg tror faktisk det var lige derfra, jeg downloadede den ...
Avatar billede themepark Nybegynder
14. december 2003 - 05:41 #17
Formentlig...det lader umiddelbart til at være det eneste sted, der er linket til den :)
Avatar billede roenving Novice
14. december 2003 - 05:44 #18
Problemet er, at jeg heller ikke får ordentlige tegn, selv om jeg oversætter tegnene til oktal-koder ...

-- for det prøvede jeg naturligvis tidligere !-)
Avatar billede themepark Nybegynder
14. december 2003 - 05:44 #19
Jeg har for øvrigt næsten fundet en anden mulighed...man kan dobbeltescape tegnet lige umiddelbart efter <.

I dit tilfælde altså innerHTML="<\\A"

Det eneste problem...der kommer et \ med i koden :(
Avatar billede themepark Nybegynder
14. december 2003 - 05:44 #20
Sig mig hvilken browser bruger DU?
Avatar billede themepark Nybegynder
14. december 2003 - 05:45 #21
Du skal for øvrigt ikke komme og sige, at du ikke får nok arbejde for pointene *G*
Avatar billede roenving Novice
14. december 2003 - 05:49 #22
3 niveauer i almindelig udvikling:

Ideligt webwriterens indbyggede, IE6 når jeg lige skal være sikker og Mozilla 1.5, når jeg tror det er nødvendigt at krydschecke !-)
Avatar billede themepark Nybegynder
14. december 2003 - 05:50 #23
Okay...og det med oktal koderne virkede ikke i nogle af dem?
Avatar billede roenving Novice
14. december 2003 - 05:55 #24
Næh ...
Avatar billede themepark Nybegynder
14. december 2003 - 05:57 #25
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 :(
Avatar billede olebole Juniormester
15. december 2003 - 02:01 #26
<ole>

Skal du i øvrigt ikke skal skrive HTML ind i div'et, kan du lave en helt enkel replace:

<div id="ib"></div>

<script type="text/JavaScript">
var str = "hjhfh <a hgjghjgh jkhiu";
str = str.replace( /</g, "&lt;" );
document.getElementById("ib").innerHTML = str;
</script>

/mvh
</bole>
Avatar billede roenving Novice
15. december 2003 - 02:08 #27
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 ?-)
Avatar billede roenving Novice
15. december 2003 - 02:12 #28
Dette virker f.eks. ikke:

<script language="javascript" type="text/javascript">
function indMedTag(str){
//str = str.replace( /</g, "&lt;" );
document.getElementById('minSpan').innerHTML = str;
}
</script>
<select name="minSelect" id="minSelect" onchange="indMedTag(this.value.replace( /</g, '&lt;' ));">
    <option value="">-- Vælg her --<br>
    <option value="<">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
</select>

-- men før jeg disablede funktions-replacen virkede det ...

-- og med og uden en replace i kaldet ?-)
Avatar billede olebole Juniormester
15. december 2003 - 02:46 #29
Det må være IE, der roder  :o)

<select name="minSelect" id="minSelect" onchange="var a=this.value.replace( /</g, 'Det virker zq da' );alert(a);">
    <option value="">-- Vælg her --<br>
    <option value="<">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
</select>
Avatar billede olebole Juniormester
15. december 2003 - 02:48 #30
Hit it roenving:

<select name="minSelect" id="minSelect" onchange="indMedTag(this.value.replace( /</g, '&amp;lt;' ));">
    <option value="">-- Vælg her --<br>
    <option value="<">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
</select>

;o)
Avatar billede roenving Novice
15. december 2003 - 02:48 #31
Nu har jeg ikke testet den med replacen i Mozilla, men alle browsere laver nummeret, som også refereret tidligere i tråden !-)
Avatar billede roenving Novice
15. december 2003 - 02:51 #32
-- altså ikke helt galt, at der var noget krølleri der ...

-- og den æder de alle sammen !-)
Avatar billede olebole Juniormester
15. december 2003 - 02:52 #33
Yups ... og mere korrekt er naturligvis:

<select name="minSelect" id="minSelect" onchange="indMedTag(this.value.replace( /</g, '\46lt;' ));">
    <option value="">-- Vælg her --<br>
    <option value="<">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
</select>
Avatar billede olebole Juniormester
15. december 2003 - 02:57 #34
Skal man være helt fundamentalistisk - og det er jo grumme trendy for tiden - bør man vel endda skrive:
  this.value.replace( /</g, '\46lt\73' )
Avatar billede roenving Novice
15. december 2003 - 03:04 #35
Ja, der er jo mange, som kammer over ;O)
Avatar billede nyp Nybegynder
15. december 2003 - 13:19 #36
Hvorfor ikke bruge innerText??
Avatar billede olebole Juniormester
15. december 2003 - 14:09 #37
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
Avatar billede nyp Nybegynder
15. december 2003 - 15:48 #38
Skrammel eller ikke skrammel så skriver de at innerHTML ikke kan bruges når den indeholder tags:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp
Avatar billede roenving Novice
15. december 2003 - 15:52 #39
Fidusen i dette spørgsmål er jo netop, at teksten ikke indeholder tags, men det tegn, som 'tilfældigvis' bruges til at starte tags ...
Avatar billede themepark Nybegynder
15. december 2003 - 16:12 #40
15. december 2003 02:01:08

olebole har kommenteret spørgsmålet:
[ Problemer med < og innerHTML ]

Okay...godt nok...1 enkelt mail...KLONK!!!

Ja, undskyld men det var bare min kæbe, der faldt på gulvet pga de mange indlæg...pyha, jeg har da noget at skulle læse igennem :/
Avatar billede olebole Juniormester
15. december 2003 - 16:50 #41
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.
Avatar billede themepark Nybegynder
15. december 2003 - 17:16 #42
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?
Avatar billede olebole Juniormester
15. december 2003 - 17:28 #43
Prøv at forklar i detaljer, hvad det er, du ønsker at gøre
Avatar billede roenving Novice
15. december 2003 - 17:31 #44
Textarea ?-)

Var det ikke en tabelcelle ...
Avatar billede themepark Nybegynder
15. december 2003 - 17:33 #45
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 &...;? :)
Avatar billede themepark Nybegynder
15. december 2003 - 17:35 #46
Sorry...jeg blander mine projekter sammen :) Plus olebole nævnte lige pludselig TEXTAREA ;)
Avatar billede themepark Nybegynder
15. december 2003 - 18:01 #47
Kunne jeg få et svar på de 4 spørgsmål? ;)
Avatar billede olebole Juniormester
15. december 2003 - 18:35 #48
... et lille svar på et eller andet spørgsmål om et eller andet projekt .... eehhh ... tror jeg nok  :)
Avatar billede themepark Nybegynder
15. december 2003 - 18:37 #49
Nej...følgende spørgsmål ;)

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? ;)
Avatar billede roenving Novice
16. december 2003 - 10:09 #50
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'
Avatar billede themepark Nybegynder
17. december 2003 - 08:26 #51
roenving og &...; er HTML'sk eller hva?

Og...øhm...kan du ikke forklare det med replace på lidt andet dansk? *G*
Avatar billede roenving Novice
17. december 2003 - 09:56 #52
Ja !-)

På andet end dænsg *g*

At javascript afleverer noget til html-fortolkeren, som er fuldt oversat til html ...
Avatar billede themepark Nybegynder
17. december 2003 - 10:05 #53
Aha....tror jeg nok :)
Avatar billede roenving Novice
23. december 2003 - 13:30 #54
-- og tak for points ;~}
Avatar billede olebole Juniormester
23. december 2003 - 15:00 #55
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 ('&oslash;', '&aelig;', 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)
Avatar billede themepark Nybegynder
23. december 2003 - 15:02 #56
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 :)
Avatar billede olebole Juniormester
23. december 2003 - 15:20 #57
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester