Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retrouver le charset d'une page

12 réponses
Avatar
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 ;-)

10 réponses

1 2
Avatar
ASM
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é

Avatar
Olivier Miakinen
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.


Avatar
ASM

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é

Avatar
Cenekemoi
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
"<meta...charset...>" est gérable...

--
Cordialement, Thierry ;-)



Avatar
Cenekemoi
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
"<meta...charset...>" est gérable...


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 ;-)

Avatar
Olivier Miakinen

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
"<meta...charset...>" est gérable...


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.


Avatar
Olivier Miakinen

[...]

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 ?)

Avatar
Pierre Goiffon
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


Avatar
Olivier Miakinen

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


<img ... alt="MS JScript" ...><img ... alt="MS IE 4.0" ...>

C'est spécifique Microsoft.

Avatar
ASM

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é

1 2