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

Poser une question


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);
Ha! Oui ! Merdum !
Non, avec (mon) Opera 9.6 c'est OK en local
Serait-ce un bug de Firefox ?
Ils n'ont pas l'air d'être au courant de la chose là ici :
Bonne année.
--
sm
Oui, oui, je sais, c'était pour simplifier...
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]).
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.
Merci...
--
Cordialement, Thierry ;-)
Ha !? oui, en effet. Curious...
et le cas [3] avec url en absolu sur le local vers l'autre dossier
ne résout rien :-(
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)
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)
--
sm
Essayé avec Firefox 3.5.6 sans succès...
--
Cordialement, Thierry ;-)