webForumDet fria alternativet

2 <html> taggar i ett dokument? vad händer?

HTML & CSS

5 svar · 340 visningar · startad av Danielkun

Medlem sedan maj 2003361 inlägg
Frågan#1

Jag undrar vad som kan hända om man importerar en "full" fil med tex. PHP eller ASP in i ett HTML dokument.

Jag är medveten om att det är bättre att ta bort saker som HEAD BODY taggar ur include filen, men vad händer om dom ligger kvar?

Filen funkar nog bra för det tror jag, men sökmotorer och annat, blir dom förvirrade kanske?

Medlem sedan okt. 2004636 inlägg
#2

Jag är medveten om att det är bättre att ta bort saker som HEAD BODY taggar ur include filen, men vad händer om dom ligger kvar?

Hej!
Nu är jag inte helt säker - men om man kikar på en hemsidas struktur som sådan så ska det bara finnas en body respektive head-tagg. Använder man t ex php-inklude tar man ju delar av en befintlig sida som man sedan "portionerar" till de olika inklude-märkena. Det borde innebära att du inte ska ha dubbla attribut. När sidan körs upp på nätet så syns inte dina inklude i källan, men det finns så servern kan läsa av dem. Med andra ord så kanske det inte är så bra idé. Vill du sedan göra dina sidor valida kommer de inte att vara det. Det som kan hända är väl att om sidan sedan funkar på nätet låter jag vara osagt med tanke på att IE släpper igenom sådana kodningsfel, de som däremot använder mozilla, opera osv kanske får ett felaktigt utseende på skärmen.

Vi får väl se om någon har en bättre förklaring min :)

Medlem sedan dec. 20042 245 inlägg
#3

Jag vet en del forum som inkluderar hela HTML-filer och på så sätt nästar ett HTML-element inom BODY.

Uppenbarligen "fungerar" det med såväl IE som Mozilla och Opera, och Safari också för den delen. Dock visades inte nånting efter den andra HTML-starttaggen i Openwaves mobilsimulator. Jag kan inte säga säkert, men jag tror inte att sökmotorer bryr sig så mycket.

Det är invalid kod, och vi kan inte veta hur olika agenter behandlar felaktig kod.

Medlem sedan nov. 20041 189 inlägg
#4

Jag har testat det med Firefox, och om jag kommer ihår rätt så renderas bara det html ELEMENTET som kommer först.
Om man däremot pratar om nästlade html taggar, dvs en i en annan så har jag inte testat.

Medlem sedan dec. 20003 887 inlägg
#5

Testa sätt en <!DOCTYPE> i koden och kör den genom w3c:s html-validator https://validator.w3c.org, så kan du nog få ett bra svar.

Medlem sedan dec. 20042 245 inlägg
#6

Test case: :)

<!DOCTYPE HTML "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>html &amp;gt; head &amp;gt; title</title>
  </head>
  <body>
    <p>html &amp;gt; body &amp;gt; p</p>
    <html>
      <head>
        <title>html &amp;gt; body &amp;gt; html &amp;gt; head &amp;gt; title</title>
      </head>
      <body>
        <p>html &amp;gt; body &amp;gt; html &amp;gt; body &amp;gt; p</p>
      </body>
    </html>
  </body>
</html>
<html>
  <head>
    <title>html + html &amp;gt; head &amp;gt; title</title>
  </head>
  <body>
    <p>html + html &amp;gt; body &amp;gt; p</p>
  </body>
</html>

Det verkar som att Mozilla, Opera och IE alla gör likadant i det här fallet. De ignorerar alla taggar de inte förväntar sig, och tar helt bort innehållet för de två sista TITLE från DOM-trädet. Så det ser ut ungefär såhär när de tolkat och lagat dokumentet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>html &amp;gt; head &amp;gt; title</title>
  </head>
  <body>
    <p>html &amp;gt; body &amp;gt; p</p>
    <p>html &amp;gt; body &amp;gt; html &amp;gt; body &amp;gt; p</p>
    <p>html + html &amp;gt; body &amp;gt; p</p>
  </body>
</html>

Det är nog värre att felaktigt nestla start- och sluttaggar, eftersom det tolkas olika. :P

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)