Firefox : problème de cross-domain

Le
Cenekemoi
Bonjour,

sur une page Html, j'utilise un morceau de script du genre:

<link rel="stylesheet" href="../styles/styles.css" type="text/css">

<script>
var cssRules = IE ? 'rules':'cssRules';
var rules = document.styleSheets[0][cssRules];
</script>

Avec Internet Explorer, aucun problème.

Avec un accès en mode serveur (url du type: http://serveur/), aucun
problème.

Mon problème est que je dois utiliser cette page en mode local (url du
type: file:///C:/projet/).
Dans ce contexte, avec Firefox (et peut-être Opéra ?), je récupère une
exception:

"Security error" code: "1000" nsresult: "0x805303e8
(NS_ERROR_DOM_SECURITY_ERR)"

Je comprend parfaitement ce type d'erreur quand la feuille de style ne
se trouve pas sur le même domaine que la page Html. Ce que j'ai plus de
mal à admettre, c'est que dans le contexte décrit ci-dessus (en "local"
sur ma machine), je ne puisse effectuer cette requête.


Auriez-vous, SVP, une astuce me permettant de m'en sortir, ou à défaut,
une explication convaincante de la chose ?

PS: et meilleurs voeux à tous

--
Cordialement, Thierry ;-)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #20857381
Le 12/29/09 2:53 PM, Cenekemoi a écrit :
Bonjour,

sur une page Html, j'utilise un morceau de script du genre:

...
<script>
var cssRules = IE ? 'rules':'cssRules';
var rules = document.styleSheets[0][cssRules];



Pas besoin de 'IE' ...

var regles = document.styleSheets[0];
regles = regles.cssRules? regles.cssRules : regles.rules;


alert(regles.length);
alert(regles[0]);

var regle = regles[0].cssText?
regles[0].cssText : regles[0].style.cssText;
alert(regle);

</script>

Avec Internet Explorer, aucun problème.

Avec un accès en mode serveur (url du type: http://serveur/...), aucun
problème.

Mon problème est que je dois utiliser cette page en mode local (url du
type: file:///C:/projet/...).
Dans ce contexte, avec Firefox (et peut-être Opéra ?), je récupère une
exception:



Ha! Oui ! Merdum !
Non, avec (mon) Opera 9.6 c'est OK en local

"Security error" code: "1000" nsresult: "0x805303e8
(NS_ERROR_DOM_SECURITY_ERR)"

Je comprend parfaitement ce type d'erreur quand la feuille de style ne
se trouve pas sur le même domaine que la page Html. Ce que j'ai plus de
mal à admettre, c'est que dans le contexte décrit ci-dessus (en "local"
sur ma machine), je ne puisse effectuer cette requête.



Serait-ce un bug de Firefox ?

Auriez-vous, SVP, une astuce me permettant de m'en sortir, ou à défaut,
une explication convaincante de la chose ?



Ils n'ont pas l'air d'être au courant de la chose là ici :

PS: ...et meilleurs voeux à tous



Bonne année.

--
sm
Cenekemoi
Le #20857801
"SAM" message de news:4b3ab46f$0$958$
Le 12/29/09 2:53 PM, Cenekemoi a écrit :
Bonjour,

sur une page Html, j'utilise un morceau de script du genre:

<link rel="stylesheet" href="../styles/styles.css"
type="text/css">
...
<script>
var cssRules = IE ? 'rules':'cssRules';
var rules = document.styleSheets[0][cssRules];



Pas besoin de 'IE' ...



Oui, oui, je sais, c'était pour simplifier...

var regles = document.styleSheets[0];
regles = regles.cssRules? regles.cssRules : regles.rules;


alert(regles.length);
alert(regles[0]);

var regle = regles[0].cssText?
regles[0].cssText : regles[0].style.cssText;
alert(regle);

</script>

Avec Internet Explorer, aucun problème.

Avec un accès en mode serveur (url du type: http://serveur/...),
aucun problème.

Mon problème est que je dois utiliser cette page en mode local (url
du type: file:///C:/projet/...).
Dans ce contexte, avec Firefox (et peut-être Opéra ?), je récupère
une exception:



Ha! Oui ! Merdum !
Non, avec (mon) Opera 9.6 c'est OK en local



Juste une remarque: j'ai observé que le fait d'avoir
'href="../styles/styles.css"' [1] au lieu de 'href="styles.css"' [2]
fait toute la différence. Le cas [1] plante, le cas [2] fonctionne.

Merci en tout cas pour le test avec Opera (si tant est que tu a pu
tester avec le cas [1]).

"Security error" code: "1000" nsresult: "0x805303e8
(NS_ERROR_DOM_SECURITY_ERR)"

Je comprend parfaitement ce type d'erreur quand la feuille de style
ne se trouve pas sur le même domaine que la page Html. Ce que j'ai
plus de mal à admettre, c'est que dans le contexte décrit ci-dessus
(en "local" sur ma machine), je ne puisse effectuer cette requête.



Serait-ce un bug de Firefox ?



C'est bien le sens de mon Post : *est-ce que cette situation est due à
un bug de Firefox* (auquel cas je survivrais avec) *ou au fait que IE ne
suit pas les recommandations du W3C* (rien trouver de clair à ce sujet)
???
Cette dernière situation est plus ennuyeuse pour ma pomme car IE (et
Opera ?) est susceptible dans une future version de réagir comme Firefox
ce qui ne marrangerait guère.

Auriez-vous, SVP, une astuce me permettant de m'en sortir, ou à
défaut, une explication convaincante de la chose ?



Ils n'ont pas l'air d'être au courant de la chose là ici :

PS: ...et meilleurs voeux à tous



Bonne année.



Merci...

--
Cordialement, Thierry ;-)
SAM
Le #20859331
Le 12/30/09 8:43 AM, Cenekemoi a écrit :
"SAM" message de news:4b3ab46f$0$958$
Le 12/29/09 2:53 PM, Cenekemoi a écrit :
Bonjour,

sur une page Html, j'utilise un morceau de script du genre:

...
<script>
var cssRules = IE ? 'rules':'cssRules';
var rules = document.styleSheets[0][cssRules];
</script>

Avec Internet Explorer, aucun problème.

Avec un accès en mode serveur (url du type: http://serveur/...),
aucun problème.

Mon problème est que je dois utiliser cette page en mode local (url
du type: file:///C:/projet/...).
Dans ce contexte, avec Firefox (et peut-être Opéra ?), je récupère
une exception:



Ha! Oui ! Merdum !
Non, avec (mon) Opera 9.6 c'est OK en local



Juste une remarque: j'ai observé que le fait d'avoir
'href="../styles/styles.css"' [1] au lieu de 'href="styles.css"' [2]
fait toute la différence. Le cas [1] plante, le cas [2] fonctionne.



Ha !? oui, en effet. Curious...
et le cas [3] avec url en absolu sur le local vers l'autre dossier
ne résout rien :-(

Merci en tout cas pour le test avec Opera (si tant est que tu a pu
tester avec le cas [1]).



Toutafé.

Et pour Safari.4, qui est aussi content du cas [1],
il me semble qu'il préfère qu'on ne lui pose de questions
qu'en fin de chargement (window.onload = ...).

Pas ni pwoblem' non plus avec Camino (versions 1 ou 2)

"Security error" code: "1000" nsresult: "0x805303e8
(NS_ERROR_DOM_SECURITY_ERR)"

Je comprend parfaitement ce type d'erreur quand la feuille de style
ne se trouve pas sur le même domaine que la page Html. Ce que j'ai
plus de mal à admettre, c'est que dans le contexte décrit ci-dessus
(en "local" sur ma machine), je ne puisse effectuer cette requête.



Serait-ce un bug de Firefox ?



C'est bien le sens de mon Post : *est-ce que cette situation est due à
un bug de Firefox* (auquel cas je survivrais avec) *ou au fait que IE ne
suit pas les recommandations du W3C* (rien trouver de clair à ce sujet) ???



Vu, que de mes brouteurs, seul Fx a ce comportement ...
je crains que ce ne soit une frilosité de sa part,
qu'il ne se mélange les pinceaux avec les précautions prises avec le
champ 'file' ... ?

Pas essayé Firefox 3.5
(est-il beaucoup utilisé ? relativement à version 3)

Auriez-vous, SVP, une astuce me permettant de m'en sortir, ou à
défaut, une explication convaincante de la chose ?




PS: ...et meilleurs voeux à tous



Bonne année.



Merci...



--
sm
Cenekemoi
Le #20860041
"SAM" message de news:4b3b3b0e$0$895
C'est bien le sens de mon Post : *est-ce que cette situation est due
à un bug de Firefox* (auquel cas je survivrais avec) *ou au fait que
IE ne suit pas les recommandations du W3C* (rien trouver de clair à
ce sujet) ???



Vu, que de mes brouteurs, seul Fx a ce comportement ...
je crains que ce ne soit une frilosité de sa part,
qu'il ne se mélange les pinceaux avec les précautions prises avec le
champ 'file' ... ?

Pas essayé Firefox 3.5
(est-il beaucoup utilisé ? relativement à version 3)



Essayé avec Firefox 3.5.6 sans succès...

--
Cordialement, Thierry ;-)
Publicité
Poster une réponse
Anonyme