2009-05-24 12 views
2

Ich weiß, dass ich alle HTML-Elemente in body-Tag setzen sollte, aber ich muss zwei versteckte Eingabe über HTML dtd setzen. Ich denke, es macht meine HTML-Datei nicht zum Standard, aber ist es so schlimm? Ich habe folgenden Code.<input type = 'hidden'> über html dtd

<input type='hidden' id='current_controller'> 
<input type='hidden' id='current_module'> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Was sind Risiken? Bisher habe ich keine Probleme.

+6

Was meinen Sie "brauchen"? Ich wette, du brauchst es nicht. Es ist einfacher, als es aus irgendeinem Grund richtig zu machen. – cletus

Antwort

4

Die Risiken sind, IIRC, dass IE6 Probleme mit doctype hat, wenn es nicht die erste Zeile ist. Es ist auch nicht üblich, und könnte Macken in anderen Browsern verursachen (aber ich glaube, die meisten sollten vergeben).

Es scheint auch, dass Sie XHTML verwenden ... daher sollten diese Eingabeelemente selbstschließend sein, da sie keine End-Tags haben.

<input type='hidden' id='current_controller' /> 
<input type='hidden' id='current_module' /> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Gibt es einen Grund, warum sie dort sein müssen? Warum können sie nicht irgendwo im body Element platziert werden? Ich kann keine wirkliche Verwendung sehen, wenn sie kein value Attribut haben, außer wenn Sie nach ihrer Existenz suchen, oder das Attribut value über JavaScript hinzufügen (was bedeutet, dass Sie diese Elemente auch selbst über JavaScript hinzufügen können).

1

Die Risiken sind, dass, da das Dokument nicht gültig ist, wird es möglicherweise nicht richtig aus dem gleichen Browser in einigen Browsern oder in verschiedenen Versionen gemacht werden (und auch zukünftige Versionen von Browsern, für die diese zur Zeit funktionieren könnte.)

Ich bin nicht sicher, was der Fall sein könnte, so dass Sie dies tun müssten. Welches Problem versuchen Sie mit diesem Ansatz zu lösen, vielleicht gibt es da noch eine andere Frage, die versucht herauszukommen? :)

2

Wenn Sie dies tatsächlich als XHTML bedienen und es dadurch über einen XML-Parser laufen lässt, wird es nicht gerendert, da das Markup nicht gültig ist.

+0

+1 gute Antwort, dachte nicht daran! – alex

Verwandte Themen