Retrouver le charset d'une page

Le
Cenekemoi
Bonjour,

savez-vous si il y a un moyen de connaître le "charset" de la balise
"meta" d'une page HTML avec JavaScript ?

Merci d'avance

--
Cordialement, Thierry ;-)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ASM
Le #740894
Bonjour,

savez-vous si il y a un moyen de connaître le "charset" de la balise
"meta" d'une page HTML avec JavaScript ?



<script type="text/javascript">
onload = function() {
var m = document.getElementsByTagName('META');
for(var i=0; i<m.length; i++)
if(m[i].content && m[i].content.indexOf('charset'))
alert('content-type = '+m[i].content);
else
alert('pas vu de charset');
}
</script>


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Olivier Miakinen
Le #740893
Le 11/05/2007 16:09, ASM répondait à Cenekemoi :

savez-vous si il y a un moyen de connaître le "charset" de la balise
"meta" d'une page HTML avec JavaScript ?


[...]
var m = document.getElementsByTagName('META');
[...]


Thierry, tu dois garder à l'esprit que ce paramètre, s'il existe, n'est
qu'indicatif. Le « vrai » charset est celui qui a dû être transmis dans
les entêtes HTTP, et celui-là tu ne l'auras pas en cherchant dans les
éléments META.


ASM
Le #740891

Thierry, tu dois garder à l'esprit que ce paramètre, s'il existe, n'est
qu'indicatif. Le « vrai » charset est celui qui a dû être transmis dans
les entêtes HTTP, et celui-là tu ne l'auras pas en cherchant dans les
éléments META.


Et je crains qu'il ne soit pas prévue de soluce JS pour exploiter les
headers envoyés par le serveur.

Les seuls que je connaisse sont ceux envoyés par le navigateur.

alert(' appCodeName : ' +navigator.appCodeName+
'n appName : ' +navigator.appName+
'n appVersion : ' +navigator.appVersion+
'n cookieEnabled : ' +navigator.cookieEnabled
'n javaEnabled() : ' +navigator.javaEnabled()+
'n language : ' +navigator.language+
'n IE userLanguage : '+navigator.userLanguage+
'n platform : ' +navigator.platform+
'n userAgent : ' +navigator.userAgent)

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Cenekemoi
Le #740890
Le 11/05/2007 16:09, ASM répondait à Cenekemoi :

savez-vous si il y a un moyen de connaître le "charset" de la balise
"meta" d'une page HTML avec JavaScript ?


[...]
var m = document.getElementsByTagName('META');
[...]


Thierry, tu dois garder à l'esprit que ce paramètre, s'il existe,
n'est qu'indicatif. Le « vrai » charset est celui qui a dû être
transmis dans les entêtes HTTP, et celui-là tu ne l'auras pas en
cherchant dans les éléments META.


Merci à tous les deux !

Ce script me convient parfaitement, car je sais peu ou prou ce que je
peux avoir dans les balises META ; le cas où je ne trouve pas de
"
--
Cordialement, Thierry ;-)



Cenekemoi
Le #740889
Merci à tous les deux !

Ce script me convient parfaitement, car je sais peu ou prou ce que je
peux avoir dans les balises META ; le cas où je ne trouve pas de
"

Si ça peut servir à quelqu'un, voici ma fonction (sur la base de celle
d'ASM) :

function getCharset() {
var m = document.getElementsByTagName('META'), charset = null,
posCharset;
for (var i=0; i<m.length; i++) {
if (m[i].content) {
posCharset = m[i].content.indexOf('charset');
if (posCharset >= 0) {
charset = m[i].content.substr(posCharset+8);
break;
}
}
}
if (!charset && document.defaultCharset)
charset = document.defaultCharset;
return charset;
}

Le "break" est présent, car si deux balises "meta" sont présentes sur la
page, c'est *la première* qui est prise en compte par le navigateur !...
D'autre part, "document.defaultCharset" n'est présent que chez IE.

--
Cordialement, Thierry ;-)

Olivier Miakinen
Le #740888

Thierry, tu dois garder à l'esprit que ce paramètre, s'il existe,
n'est qu'indicatif. Le « vrai » charset est celui qui a dû être
transmis dans les entêtes HTTP, et celui-là tu ne l'auras pas en
cherchant dans les éléments META.


Ce script me convient parfaitement, car je sais peu ou prou ce que je
peux avoir dans les balises META ; le cas où je ne trouve pas de
"

Je ne parlais pas tellement du cas où il n'y aurait pas de <meta...
charset...> mais surtout du cas où tu en aurais un mais qu'il ne serait
pas pris en compte puisque (et pardonne moi d'insister encore sur ce
point) ce sont les entêtes HTTP qui ont la priorité absolue.


Olivier Miakinen
Le #740887

[...]

Le "break" est présent, car si deux balises "meta" sont présentes sur la
page, c'est *la première* qui est prise en compte par le navigateur !...


... SAUF s'il y a un charset dans les entêtes HTTP, charset que tu ne
sais pas récupérer (comment ? j'insiste lourdement ?)

Pierre Goiffon
Le #740636
Olivier Miakinen wrote:
[...]

Le "break" est présent, car si deux balises "meta" sont présentes sur la
page, c'est *la première* qui est prise en compte par le navigateur !...


... SAUF s'il y a un charset dans les entêtes HTTP, charset que tu ne
sais pas récupérer (comment ? j'insiste lourdement ?)


Euh... Et document.charset ?
http://fr.selfhtml.org/javascript/objets/document.htm#charset


Olivier Miakinen
Le #740634

Euh... Et document.charset ?
http://fr.selfhtml.org/javascript/objets/document.htm#charset



C'est spécifique Microsoft.

ASM
Le #740629

Euh... Et document.charset ?
http://fr.selfhtml.org/javascript/objets/document.htm#charset


selhtml est pas mal foutu, il faut bien faire attention aux iconnettes
spécifiant quel brouteur et depuis quelle version supporte le truc dont
il est question ... et là c'est : IE et JS M$

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Publicité
Poster une réponse
Anonyme