J'essaie d'inclure un GoogleMap v3 (tout allait bien avec v2) dans mes pages HTML générées avec XLS Transformations. Mon code JS vient de this page. Fondamentalement, la carte fonctionne correctement lorsque tout est en HTML, comme dans l'exemple, mais quand j'essaie de l'inclure dans la feuille de style XSL, Firefox (v3.6) se plaint et ne veut rien charger:XSLT, Doctype et Google-Map v3 ne fonctionnent pas
Error: uncaught exception: [Exception... "Operation is not supported" code: "9" nsresult: "0x80530009 (NS_ERROR_DOM_NOT_SUPPORTED_ERR)" location: " http://maps.google.com/maps/api/js?sensor=false Line: 9"]
Error: google.maps.LatLng is not a constructor Source File: file:///home/kevin/google/data.xml Line: 2
Voici une version simplifiée du code XSL J'utilise:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet >
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
et un document XML minimaliste pour déclencher la transformation:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet>
<?xml-stylesheet type="text/xsl" href="Display.xsl"?>
<root />
Selon mes recherches Google, le problème peut provenir d'une mauvaise Doctype, mais je ne sais pas vraiment comment le résoudre, des fonctions telles que
<xsl:output method="html"
indent="yes"
omit-xml-declaration="yes"
encoding="utf-8"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
ne change rien.
EDIT: mon DOCTYPE réelle est un peu plus comple, pour XML:
<!DOCTYPE xsl:stylesheet [<!ENTITY auml "ä" ><!ENTITY ouml "ö" ><!ENTITY uuml "ü" ><!ENTITY szlig "ß" ><!ENTITY Auml "Ä" ><!ENTITY Ouml "Ö" ><!ENTITY Uuml "Ü" ><!ENTITY euml "ë" ><!ENTITY ocirc "ô" ><!ENTITY nbsp " " ><!ENTITY Agrave "À" ><!ENTITY Egrave "È" ><!ENTITY Eacute "É" ><!ENTITY Ecirc "Ê" ><!ENTITY egrave "è" ><!ENTITY eacute "é" ><!ENTITY ecirc "ê" ><!ENTITY agrave "à" ><!ENTITY iuml "ï" ><!ENTITY ugrave "ù" ><!ENTITY ucirc "û" ><!ENTITY uuml "ü" ><!ENTITY ccedil "ç" ><!ENTITY AElig "Æ" ><!ENTITY aelig "Ŋ" ><!ENTITY OElig "Œ" ><!ENTITY oelig "œ" ><!ENTITY euro "€"><!ENTITY laquo "«" ><!ENTITY raquo "»" >]>
et XSL:
<!DOCTYPE xsl:stylesheet [
<!ENTITY % xhtml-lat1 SYSTEM
"http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
<!ENTITY % xhtml-special SYSTEM
"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
<!ENTITY % xhtml-symbol SYSTEM
"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
%xhtml-lat1;
%xhtml-special;
%xhtml-symbol;
]>
à manipuler correctement tous mes accents et les caractères spéciaux, donc je pour éviter de s'en débarrasser, si possible
EDIT 2: le problème est en fait exactement la même chose avec je tente de charger un OpenStreetMap si Mapstraction API, document.write
n'est pas autorisé.
Une autre chose que ce v2 Google Map fonctionne correctement lorsque j'utilise une fonction de rappel:
http://maps.google.com/maps?file=api&v=2.x&key={myKey}&c&async=2&callback={myInitFunct}
Toute idée de ce qui peut se tromper?
(@Dimitre, qu'est-ce qui n'allait pas avec ma balise xslt?) – Kevin
Ceci n'est pas une question XSLT. Cette question pose un problème qui ne concerne pas "Comment résoudre ce problème particulier en utilisant XSLT" mais la question est sur la façon de faire exécuter un environnement/xslt-processeur particulier. Pour récapituler - ce problème est spécifique à FF, donc il tombe sous la balise xsltprocessor. –