OVH Cloud OVH Cloud

Opera et JavaScript

9 réponses
Avatar
artaban.de.medee
à cette page :

<http://www.yvon-thoraval.com/XHTML11/svg_dom2.xhtml>

j'ai un script qui manipule le dom d'une image svg.

ça marche bien avec Firefox, ça marchotte avec WebKit (qui semble buggé)
MAIS ça ne marche pas du tout avec Opera qui ne trouve même pas la
function "rotateColors()" présente dans le fichier lié
"deps_rep/rotate.js"

je ne vois pas ce qui pose pb à Opera(*) le fichier lié étant appellé
par :
<script type="text/javascript" src="deps_rep/rotate.js"></script>

au cas zoù quelqu'un connaitraît une réponse à ce genre de pb...

--
Artaban de Médée

9 réponses

Avatar
ASM
à cette page :

<http://www.yvon-thoraval.com/XHTML11/svg_dom2.xhtml>

je ne vois pas ce qui pose pb à Opera(*) le fichier lié étant appellé
par :
<script type="text/javascript" src="deps_rep/rotate.js"></script>

au cas zoù quelqu'un connaitraît une réponse à ce genre de pb...


Opera te le dit lui-même ... :
Line 11 of linked script
http://www.yvon-thoraval.com/XHTML11/deps_rep/colors.js


ligne 11 de 'rotate.js' on a :

var doneúlse;

Opera nous dit : Could not convert undefined or null to object



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

Avatar
artaban.de.medee
ASM wrote:

Opera te le dit lui-même ... :
Line 11 of linked script
http://www.yvon-thoraval.com/XHTML11/deps_rep/colors.js


ligne 11 de 'rotate.js' on a :

var doneúlse;

Opera nous dit : Could not convert undefined or null to object


ben moi, c'est ce qui m'a dérouté, je n'ai pas du tout ce message là à
la console, ce que j'ai c'est :

...svg_dom2.xhtml
Event thread : load
...
message: Statement on line 1 : Reference to undifined varaiable :
rotateColors
...
[statement source code not available]

bon de toutes façons même en commentant les lignes 11 et 12, ça ne
change rien...

(j'ai supprimé tous les if(debug)alert("...");)

mais ce qui m'intrigue et que vous n'avez pas le même message d'erreur
que moi...

j'utilise Opera 9.10 (latest)

par ailleurs ça marche très bin avec Firefox 2 et +/- avec WebKit qui a
un bug dans le repaint (ne prepeint qu'une partie des cercles)
--
Artaban de Médée

Avatar
ASM

ben moi, c'est ce qui m'a dérouté, je n'ai pas du tout ce message là à
la console, ce que j'ai c'est :


oui, j'ai à peu près la même chose :
JavaScript - http://www.yvon-thoraval.com/XHTML11/svg_dom2.xhtml
Event thread: load
Error:
name: TypeError
message: Statement on line 11: Could not convert undefined or null to object
Backtrace:
Line 11 of linked script
http://www.yvon-thoraval.com/XHTML11/deps_rep/colors.js
var rgb = ((s.split("("))[1].split(")"))[0].split(",");
Line 49 of linked script
http://www.yvon-thoraval.com/XHTML11/deps_rep/rotate.js
radGradColors[ic] =
hsv2rgb(rotateHSLColor(rgb2hsv(radGradColors[ic]), degreAngleStep));
Line 1 of script
rotateColors();
At unknown location
[statement source code not available]

bon de toutes façons même en commentant les lignes 11 et 12, ça ne
change rien...


et même 'color.js' a disparu !
ce qui ne facilite pas l'autopsie ... :-/

Ha! c'est revenu !

Pour le message de Opera :
var rgb = ((s.split("("))[1].split(")"))[0].split(",");
il y a des ) en trop, non ?
var rgb = s.split("(")[1].split(")")[0].split(",");
d'où nous sort-il ça ?

et si au lieu d'avoir :
function rgb2hsv(s){
var rgb=s.split("(")[1].split(')')[0].split(',');
tu mettais :
function rgb2hsv(s){
var rgb=s.split('(')[1].split(')')[0].split(',');
et pareil por :

function RGBString2RGBColor(s){
return s.split("(")[1].split(')')[0].split(',');
}

bien qu'à mon idée ça ne devrait pas géner.

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

Avatar
artaban.de.medee
ASM wrote:

var rgb = ((s.split("("))[1].split(")"))[0].split(",");
il y a des ) en trop, non ?


oui autour de s.split("(") MAIS c'est curieux mon code est écrit SANS ce
parenthésage inutile...
var rgb = s.split("(")[1].split(")")[0].split(",");
d'où nous sort-il ça ?

et si au lieu d'avoir :
function rgb2hsv(s){
var rgb=s.split("(")[1].split(')')[0].split(',');
tu mettais :
function rgb2hsv(s){
var rgb=s.split('(')[1].split(')')[0].split(',');
et pareil por :

function RGBString2RGBColor(s){
return s.split("(")[1].split(')')[0].split(',');
}


ben c'est ce que j'ai là aussi dans mon code...
c'est curieux tout se passe "comme si" Opera réinterprétait le code en
le complexifiant...

bien qu'à mon idée ça ne devrait pas géner.


ben non, je suis d'accord.


Mais pour moi le problème est ailleurs car dans une étape précédente
rotate.js était dans le fichier xhtml et Opera se plaignait de ne pas
trouver une fonction présente dans colors.js.

là, chez moi, il se plaind de ne pas trouver la première fonction à
utiliser dans rotate.js.

tout se passe comme si Opera n'arrivait pas à charger le fichier script
lui-même d'où le message d'erreur qui chez moi dit :

Event thread load

il n'arrive pas à charger les fichiers js ???

ça reste un mystère pour moi ...

ça ressemble à un bug...
--
Artaban de Médée

Avatar
ASM

ça reste un mystère pour moi ...

ça ressemble à un bug...


Il bugue aussi ici :
http://stephane.moriaux.perso.orange.fr/truc/convertisseur_couleurs.shtml

Et je crois savoir pourquoi :
j'ai la très nette impression qu'Opera stoque les couleurs en hexa sous
la forme #123456
(avec le #)

alors tous les appels et conversions en RGB ... tu penses !

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

Avatar
artaban.de.medee
ASM wrote:

http://stephane.moriaux.perso.orange.fr/truc/convertisseur_couleurs.shtml


si je rentre "rgb(100%, 0%,0%)" j'obtiens bine rouge à côté du bouton
[OK] MAIS l'hexa me donne : #undefined0000
inversion : #0000NAN
et rgb(255,0,0)
je ne savais pas qu'on pouvait mettre les composantes rgb en %...

Et je crois savoir pourquoi :
j'ai la très nette impression qu'Opera stoque les couleurs en hexa sous
la forme #123456
(avec le #)

alors tous les appels et conversions en RGB ... tu penses !


bon, je vais donc passer en hexa, déjà je suis passer de hsl() (supporté
par firefox) en rgb() pour Opera...

WebKit, mon bug report a été accepté...

je suis justement en train d'écrire une "classe" Color qui fait toutes
les conversions et +...

mais je n'en suis qu'au tout début, je vais essayer de trouver un algo
rgb -> hsl et hsl -> non aproximatif car avec l'algo que j'ai pour
l'instant il y a des différences entre javascript et la palette de
couleurs Apple...

c'est là :

<http://www.yvon-thoraval.com/XHTML11/deps_rep/colorClass-test.xhtml>

WORK IN PROGRESS <<<





sur ce je vais m'acheter de quoi becquetter )))
--
Artaban de Médée



Avatar
ASM
ASM wrote:

http://stephane.moriaux.perso.orange.fr/truc/convertisseur_couleurs.shtml


si je rentre "rgb(100%, 0%,0%)" j'obtiens bine rouge à côté du bouton
[OK] MAIS l'hexa me donne : #undefined0000


Bon! je ne sais plus quelle version de ce fichier j'ai mise en ligne
(j'en ai plein un dossier)

je ne savais pas qu'on pouvait mettre les composantes rgb en %...


Heu ...
sans avoir re-regardé, y a des chances que tes conversions hue passent
par le % (ou assimilé -> r g ou b maxi = 1)

l'instant il y a des différences entre javascript et la palette de
couleurs Apple...


kesskecé la palette Apple ?
en quoi diffère t-elle ?



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


Avatar
unbewusst.sein
ASM wrote:


Bon! je ne sais plus quelle version de ce fichier j'ai mise en ligne
(j'en ai plein un dossier)

je ne savais pas qu'on pouvait mettre les composantes rgb en %...


Heu ...
sans avoir re-regardé, y a des chances que tes conversions hue passent
par le % (ou assimilé -> r g ou b maxi = 1)


non, ce n'est pas du tout un pb de conversion, j'ai vérifié sur une
20taine de tests.


Ce qui se passe sur Opera :

j'ai deux fichiers javascript "colors.js" et "rotate.js", dans <body...>
j'ai : onload="rotateColors();"

Opera me dit qu'il ne trouve pas rotateColors...

depuis ce matin j'ai tout passé les couleurs en "#fccabb" ça ne change
rien pour Opera qui ne trouve tjs pas rotateColors, tout se passe comme
si, pour Opera, le fichier "totate.js" n'était pas chargé, d'ailleurs
Opera m'indique un pb de load....


Bon, maintenant j'ai un peu le même pb avec Firefox, Firefox trouve bien
rotateColors() Mais pas Color qui se trouve dans le fichier colors.js...

je n'ai jamais eu de pb comme ça...

Color() est le constructeur d'objet color...

l'instant il y a des différences entre javascript et la palette de
couleurs Apple...


kesskecé la palette Apple ?
en quoi diffère t-elle ?
la palete de couleur qui permet de faire des conversions rgb -> hsl par

exemple, dans TextEdit > Format > Police > Afficher les couleurs.

mais bon je ne suis pas sûr de qui a raison...

par ce que si je positionne à rgb(255,0,0) la palette de couleur, je
passe en TSL, j'ai bien 0, 100%, 100% ensuite de là, je change hue à
120° ensuite je repasse en rgb et là j'obtiens : rgb(97,250,0) ce qui
est FAUX, la palette de couleur Apple est buggée...j'aurais du obtenir
rgb(0,255,0)...

ou laors fait une sorte de conversion en background...

--
Artaban de Médée


Avatar
unbewusst.sein
Une Bévue wrote:

Bon, maintenant j'ai un peu le même pb avec Firefox, Firefox trouve bien
rotateColors() Mais pas Color qui se trouve dans le fichier colors.js...

je n'ai jamais eu de pb comme ça...

Color() est le constructeur d'objet color...


j'ai mis cet exemple-là en :

<http://www.yvon-thoraval.com/XHTML11/svg_dom2_new.xhtml>
--
Artaban de Médée