webForumDet fria alternativet

Förändrar kod?

JavaScriptur Javascript

6 svar · 1 572 visningar · startad av Belenos

Medlem sedan mars 201077 inlägg
Frågan#1

Jag har en iframe där jag läser in html-kod med:

doc.document.open();
doc.document.write(content);
doc.document.close();

där doc är referens till ifram-en och content är koden som skickas in.
Nu vill jag ta ut koden efter att ha redigera den i min ifram. Detta gör jag med:

doc.document.body.innerHTML

Problemet är att när jag t.ex. skickar in:

style="BORDER: #aaaaaa 1px dashed; PADDING: 2px; WIDTH: 100%; BORDER-COLLAPSE: separate"

Så får jag ut:

style="BORDER-BOTTOM: #aaaaaa 1px dashed; BORDER-LEFT: #aaaaaa 1px dashed; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; WIDTH: 100%; PADDING-RIGHT: 2px; BORDER-COLLAPSE: separate; BORDER-TOP: #aaaaaa 1px dashed; BORDER-RIGHT: #aaaaaa 1px dashed; PADDING-TOP: 2px"

Finns det något sätt att göra detta så att koden in är samma som koden ut?

Medlem sedan juni 2012582 inlägg
#2

Kontrollera vad som egentligen händer med datan du skickar in.

Medlem sedan mars 201077 inlägg
#3

Jag har kollar koden in i iframe med alert() och koden ut ur iframe på samma sätt. Hur kollar jag koden i iframe?

Medlem sedan aug. 20039 342 inlägg
#4

Problemet är att innerHTML skapar HTML-kod utifrån DOM-trädet. Alltså finns det ingen garanti för att koden du får ut ser exakt likadan ut som det du skickar in. Däremot fungerar den likadant. I detta fall skrivs varje specifikt CSS-attribut ut , t ex.
BORDER: #aaaaaa 1px dashed; kan ses som en genväg till att skriva ut regler för border-top, bottom, left och right. Koden gör ju dock samma sak.

Finns det någon särskild anledning varför koden måste se exakt likadan ut?

Medlem sedan mars 201077 inlägg
#5

Tack så mycket nitro!
Som ni säkert förstår så har jag byggt en WYSIWYG-editor ampassad efter min smala småtjuriga modell. Njaa, det är kul att lära sig hur det fungerar och det är nog främsta anledningen.
Jag kommer att spara koden i ett format som jag vill ha så resurs-snålt som möjligt, med andra ord så vill jag att all hemsidekod ska ta så lite plats som möjligt. Den laddas in i editorn redigeras och sparas om på samma sätt som alla andra editorer.
Sen kan det ju vara kul att få bestämma över vad maskinerna gör, och jag är övertygad om att det finns fler funktioner i JavaScript som gör samma sak, eller att det går att påverka DOM-trädet på något sätt!

Medlem sedan aug. 20039 342 inlägg
#6

Om du vill att sidan ska bli så resurssnål som möjligt samt öka chanserna att få ut samma kod som du stoppar in så har jag ett förslag som slår två flugor i en smäll. Låt bli att använda style-attributet och använd CSS-klasser istället.

Eller, byt ut din lösning mot en färdig WYSIWYG-lösning. Med stor sannolikhet så är den koden både bättre rent i allmänhet, och ger renare HTML-kod tillbaka.

Medlem sedan mars 201077 inlägg
#7

Tack för tipset, men nu är det ju så att jag försöker lösa de begränsningar jag tycker att färdiga program har. Så jag fortsätter gärna söka mig fram så gott jag kan, med hjälp av er!
Om jag ville använda en fördig lösning så skulle jag troligtvis inte vara här, ellerhur?

139 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)