comment puis-je changer le DOCTYPE
quelqu'un ici sait comment je peux modifier dynamiquement le type de document avec javascript?
j'ai essayé avec cette fonction,
document.doctype('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'); ,
mais il ne fonctionne pas.
source d'informationauteur mana
Vous devez vous connecter pour publier un commentaire.
J'espère que ceci pourra aider certains d'entre vous ( Testé dans la Console et ça change réel DOCTYPE)
document.doctype is a read-only
de propriété, pas de méthode, apparemment selon le MDC.Ce que vous avez besoin est:
https://developer.mozilla.org/En/DOM/DOMImplementation.createDocumentType
Renvoie une DocumentType objet qui peut être utilisé avec DOMImplementation.createDocument lors de la création du document ou ils peuvent être placés dans le document par l'intermédiaire du Nœud.insertBefore() ou un Nœud.replaceChild():
Pour tenter de justifier ce cas d'utilisation, j'ai le scénario suivant:
J'ai un TAL modèle qui rend un petit portition de la page. Je puis enveloppez qui portition parent balises comme ceci:
De cette façon, ce TAL modèle est visible/modifiable comme un stand-alone fichier HTML, par un designer. On ne peut pas omettre la DTD dans TAL, donc il ne peut pas être ajouté.
Un moyen facile d'ajouter avec JavaScript, c'est comme cela:
Je ne pense pas que vous le pouvez.
doctype
est répertorié comme une propriété du W3C de la documentation, mais elle est en lecture seule. Même si ce n'était pas le cas, je ne peux pas imaginer quel effet de changer, il aurait dans le monde réel des navigateurs.Re vos commentaires ultérieurs: Vous aurez à gérer de ce côté serveur et de servir de retour la page adaptée à la cible navigateur. Mais vous ne devriez pas avoir à le faire en toute mais certains très frange cas.
Même si vous le pouvez, votre code peut être en cours d'exécution après que la page a déjà décidé de se rendre en auquel cas l'effet de modifier le doctype n'est rien. La seule façon que je peux imaginer les navigateurs modernes ayant doctype, c'est que vous êtes en s'appuyant sur mode quirks en IE - de fixer votre conception de travail pour tous les navigateurs, mais c'est à dire, puis regardez dans IE style.
Si le problème est seulement avec IE, j'ai aussi eu le même problème, j'ai utilisé le Mode quirks pour IE - utilisez un commentaire avant de DOC TYPE de déclaration et IE va aller en mode quirks.
L'autre manière que vous pouvez contourner est d'abord charger un script pour détecter le navigateur et de rediriger les navigateurs paramètre à l'autre page où vous pouvez déclarer Navigateur dépendant de doctype.
exemple de ce que j'ai fait avec mon code est comme :-
Ici, j'ai enlevé le doctype declearation de la browe