|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 ;-) |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Cenekemoi a écrit :
> 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é |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Cenekemoi a écrit :
> 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é |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen a écrit :
> > 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 Enabled : ' +navigator.Enabled '\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é |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen a écrit :
> > 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 Enabled : ' +navigator.Enabled '\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é |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Bonjour à Olivier Miakinen <om+news@miakinen.net> qui nous a écrit :
> 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 ;-) |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Bonjour à Cenekemoi <thierry@no.spam> qui nous a écrit :
> 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 ;-) |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Le 11/05/2007 17:02, Cenekemoi a écrit :
>> >> 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. |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Le 11/05/2007 17:02, Cenekemoi a écrit :
>> >> 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. |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
Le 11/05/2007 17:24, Cenekemoi a écrit :
> > [...] > > 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 ?) |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Le 11/05/2007 17:24, Cenekemoi a écrit :
> > [...] > > 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 ?) |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
Olivier Miakinen wrote:
> Le 11/05/2007 17:24, Cenekemoi a écrit : >> [...] >> >> 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/ob...nt.htm#charset |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
Le 11/05/2007 18:45, Pierre Goiffon a écrit :
> > Euh... Et document.charset ? > http://fr.selfhtml.org/javascript/ob...nt.htm#charset <img ... alt="MS JScript" ...><img ... alt="MS IE 4.0" ...> C'est spécifique Microsoft. |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Pierre Goiffon a écrit :
> > Euh... Et document.charset ? > http://fr.selfhtml.org/javascript/ob...nt.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é |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
Pierre Goiffon a écrit :
> > Euh... Et document.charset ? > http://fr.selfhtml.org/javascript/ob...nt.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é |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
ASM wrote:
>> Euh... Et document.charset ? >> http://fr.selfhtml.org/javascript/ob...nt.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$ ![]() Merci de la correction Stéphane et Olivier ! |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
ASM wrote:
>> Euh... Et document.charset ? >> http://fr.selfhtml.org/javascript/ob...nt.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$ ![]() Merci de la correction Stéphane et Olivier ! |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
Bonjour à Olivier Miakinen <om+news@miakinen.net> qui nous a écrit :
> Le 11/05/2007 17:02, Cenekemoi a écrit : >>> >>> 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. Tu as raison d'insister pour que tout le monde comprenne bien ;-) Comme j'ai essayé de le dire, je suis, en quelque sorte, maître de ce qui est envoyé à ma page Html : c'est une application Java (côté serveur) dont je connais les spécificités. Cette application peut gérer soit du "iso-8859-1", soit du "iso-8859-15", soit de l'utf-8 via la balise META. Et merci à Pierre pour son "document.charset" ( spécifique IE de pair avec "document.defaultCharset" ) qui peut aider également !... -- Cordialement, Thierry ;-) |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
Bonjour à Olivier Miakinen <om+news@miakinen.net> qui nous a écrit :
> Le 11/05/2007 17:02, Cenekemoi a écrit : >>> >>> 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. Tu as raison d'insister pour que tout le monde comprenne bien ;-) Comme j'ai essayé de le dire, je suis, en quelque sorte, maître de ce qui est envoyé à ma page Html : c'est une application Java (côté serveur) dont je connais les spécificités. Cette application peut gérer soit du "iso-8859-1", soit du "iso-8859-15", soit de l'utf-8 via la balise META. Et merci à Pierre pour son "document.charset" ( spécifique IE de pair avec "document.defaultCharset" ) qui peut aider également !... -- Cordialement, Thierry ;-) |
|
![]() |
| Outils de la discussion | |
|
|