webForumDet fria alternativet

Visa javascript-genererad källkod

15 svar · 856 visningar · startad av oskob

oskobMedlem sedan maj 20021 558 inlägg
#1

Hejsan!
Jag bygger en sida när innehållet laddas dynamiskt med XMLHttpRequest. Nu skulle jag vilja validera källkoden men den ser ju bara den kod som finns innan något innehåll laddats. Finns det något sätt att visa hela källkoden, inklusive de ändringar som gjorts med javascript? Typ document.innerHTML eller något.

Tack på förhand!

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

alert(document.body.innerHTML);
borde väl göra susen.

oskobMedlem sedan maj 20021 558 inlägg
#3

Oj det var lättare än jag trodde.

oskobMedlem sedan maj 20021 558 inlägg
#4

Hmm... Finns det något sätt att få hela källkoden? Inte bara det i body? Doctype och head osv.

dAEkMedlem sedan feb. 20041 816 inlägg
#5

Använder du Firefox kan du markera allt på sidan(ctrl+A) och sedan välja View Selection Source(högerklick). Hur en js-baserad lösning kan se ut, det vet jag icke!

/r: Nevermind. Doctype hänger visst inte med.

CssonMedlem sedan feb. 2000438 inlägg
#6

View Rendered Source Chart-extensionen ger allt förutom alla inline-javascript. Källkoden blir dock lite lustigt formaterad, så om du absolut inte behöver doctype är nog dAEk^s variant bättre.

oskobMedlem sedan maj 20021 558 inlägg
#7

Gött! Det löste biffen!

EDIT:

Inte alls... Det tar bort sluttaggar på mina element!
<meta tjo hej hopp /> blir
<meta tjo hej hopp> och det klagar validatorn på. Blir rörigt att se vad som verkligen är fel när det är en massa sånt. Vad i helskotta gör den så för?

EDIT2:

Men tusan då. "Visa källkoden för markering" gör exakt samma sak!

zcorpanMedlem sedan dec. 20042 245 inlägg
#8

Det beror på att du serverar din märkkod som text/html, och tolkas därför som om det vore HTML. HTML har ingen "/>"-syntax. Alls. HTML har bara starttaggar och sluttaggar. Vissa elementtyper har förbjuden sluttagg.

Om det tolkas som HTML kan det kanske vara en idé att validera mot HTML? :)

oskobMedlem sedan maj 20021 558 inlägg
#9

Har petat lite på headern och sånt. Var lite problem eftersomd et var en php-fil.
Nu tolkas den som xhtml, men vill inte validera eftersom vissa element får attributet xmlns="http://www.w3.org/1999/xhtml, t.ex. <title>, när jag visar rendered source.

ED:
Plus att en del javascript slutade att fungera.

zcorpanMedlem sedan dec. 20042 245 inlägg
#10

Att attributet xmlns inte är tillåtet är helt enkelt en konsekvens av att DTDer saknar stöd för namnrymder. Du kan antingen bortse från dessa "fel", eller validera mot ett schema-språk som har stöd för namnrymder, som tex XML Schema eller RELAX NG.

Att en del javascript slutade fungera beror förmodligen på att javascript fungerar aningen annorlunda i XML mot i HTML. Tex fungerar inte document.write, du måste använda namnrymdsmedvetna metoder (createElementNS istället för createElement), alla namn är lägeskänsliga, osv. Dessutom går det inte att "gömma" SCRIPT-element inom <!-- och --> eftersom det tolkas som en riktig kommentar i XML.

oskobMedlem sedan maj 20021 558 inlägg
#11

Hmm... jag har lite svårt att hitta info om det här med att skicka dokument som xml. Jag läser överallt att "om du inte vet skillnaden så kan du lika gärna lägga ner och använda html". Det verkar nästan lite hemligt :|. Någon som har länktips eller något man kan söka på för att hita med info om det?

oskobMedlem sedan maj 20021 558 inlägg
#12

Aha. Då är det createElement som strular till det.
Hur är det egentligen med innerHTML? Det borde väl vara fel att skapa html med det eftersom det blir text? Tex getElementById("hej").innerHTML = '<a href="hej">hej</a>'; eller parsas det som xml ändå?
Och ska man ändra mimetyper på servern eller i htacces eller räcker det med att skriva i dokumentet att det ska tolkas som xml?

zcorpanMedlem sedan dec. 20042 245 inlägg
#13

http://www.456bereastreet.com/archive/200501/the_perils_of_using_xhtml_properly/

.innerHTML fungerade för bara ett tag sen endast i HTML och inte i XML. Men Firefox 1.5 och Opera 8 har implementerat stöd för .innerHTML även i XML, och om det inte är välformig XML kastas ett NS_ERROR_DOM_SYNTAX_ERR-undantag. .innerHTML är dock fortfarande ingen "standard".

Du kan inte ange i dokumentet självt om det ska tolkas som HTML eller som XML, du måste ange det i Content-Type HTTP-rubriken.

oskobMedlem sedan maj 20021 558 inlägg
#14

Ah se där. Den verkar väldigt vettig.
Jo det här med character encoding... Är utf-8 att föredra eller går iso-8859-1 lika bra? Nästan alla sidor jag ser använder utf-8 verkar det som.

zcorpanMedlem sedan dec. 20042 245 inlägg
#15

De enda enkodningar som en XML-processor måste ha stöd för är utf-8 och utf-16. Om du använder en annan enkodning och kommuniceringen misslyckas är det ditt fel. Så, ja, utf-8 är att föredra när man använder XML på webben.

oskobMedlem sedan maj 20021 558 inlägg
#16

Har läst igenom bereasstreet-artickeln och fått lite insikt nu. Men något jag inte har fått svar på är Varför. Jag hittar inga som helst fördelar med att göra på detta extremt bökiga sätt.

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