Я пытаюсь включить GoogleMap v3 (все было в порядке с v2) в мои HTML-страницы, созданные с помощью XLS Transformations.Мой JS-код получен с этой страницы .
По сути, карта работает правильно, когда все в простом HTML, как показано в примере, однако, когда я пытаюсь включить его в таблицу стилей XSL,Firefox (v3.6) жалуется и не хочет ничего загружать:
Ошибка: необработанное исключение: [Исключение ... "Операция не поддерживается" код: "9" nsresult: "0x80530009(NS_ERROR_DOM_NOT_SUPPORTED_ERR) "location:" http://maps.google.com/maps/api/js?sensor=false Строка: 9 "]
Ошибка: google.maps.LatLng не является конструктором Исходный файл: file: /// home / kevin / google / data.xml Строка: 2
Вот упрощенная версия кода XSL, который я использую:
<?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>
и минималистский XML-документ для запуска преобразования:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet>
<?xml-stylesheet type="text/xsl" href="Display.xsl"?>
<root />
Согласно моим исследованиям в Google, проблема может быть в неправильном Doctype, но я не знаю, как его исправить, такие функции, как
<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" />
ничего не меняют.
РЕДАКТИРОВАТЬ : мой фактический DOCTYPE немного более полон, для 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 "»" >]>
и 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;
]>
, чтобы правильно обрабатывать все мои акценты и специальные символы, поэтому я хотел бы избежать, если это возможно, избавления от него
РЕДАКТИРОВАТЬ 2 : проблема на самом деле точно такая же, с которой я пытаюсь загрузить OpenStreetMap, хотя Mapstraction API, document.write
не допускается.
Другое дело, что Google Map v2 работаетправильно, когда я использую функцию обратного вызова:
http://maps.google.com/maps?file=api&v=2.x&key={myKey}&c&async=2&callback={myInitFunct}
Любая подсказка о том, что может быть не так?