Autor Zpráva
tonny2
Profil *
Při načtení obsahu níže uvedeného souboru do prohlížeče Explorer 6.0 se objeví okna s následujícími hlášeními o chybách na řádcích 25, 83 a 165. Chybová okna samozřejmě zastaví další provádění skriptu. Novější verze Exploreru, ani ostatní prohlížeče chybu nehlásí. Hodně lidí ale Explorer 6.0 používá a tak chybová hlášení nelze ignorovat. Na uvedených řádcích ale sám žádné chyby nevidím. Kde je problém? Co udělat, abych chybová hlášení odstranil? Děkuji předem za pomoc.

Řádka 25, znak 5, chyba: GIcon není definováno,
Řádka 83, znak 7, chyba: byl očekáván objekt,
Řádka 165, znak 1, chyba: byl očekáván objekt,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>ARCHINDEX - Architektura a její tvůrci</title>

<META name="description" content="Tyto stránky serveru Archindex prezentuji 
informace o stavbách a o jejich tvůrcích - architektech, projektantech, stavebnících a o stavebních firmách.">

<META name="keywords" content="Achitectura, Architektur, architektura, Czech Republic, Tschechische Republik, Čechy, Česká republika, 
CTS, Jizni Cechy, on-line Ceske Budejovice, Krumlov, Pisek, Trebon, Tabor">

  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  <link href="styl.css" type="text/css" rel="stylesheet">
   <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAlkx4_EAaDdz3snlaPfFeBTjJ78FcFGSJCxISatl1m0nWFZqoQ' 
       type='text/javascript'></script>

    <script type="text/javascript">

  // Call this function when the page has been loaded   
  var global_markers = new Array();  // pole všech značek pro zobrazení značky odkazem na stránce
  var map;

    //<![CDATA[

    var iconYellow = new GIcon(); 
    iconYellow.image = 'http://arch.info.toje.in/obr/icon/mm_20_yellow.png';
    iconYellow.shadow = 'http://arch.info.toje.in/obr/icon/mm_20_shadow.png';
    iconYellow.iconSize = new GSize(12, 20);
    iconYellow.shadowSize = new GSize(22, 20);
    iconYellow.iconAnchor = new GPoint(6, 20);
    iconYellow.infoWindowAnchor = new GPoint(5, 1);

    var iconMagenta = new GIcon(); 
    iconMagenta.image = 'http://arch.info.toje.in/obr/icon/mm_20_magenta.png';
    iconMagenta.shadow = 'http://arch.info.toje.in/obr/icon/mm_20_shadow.png';
    iconMagenta.iconSize = new GSize(12, 20);
    iconMagenta.shadowSize = new GSize(22, 20);
    iconMagenta.iconAnchor = new GPoint(6, 20);
    iconMagenta.infoWindowAnchor = new GPoint(5, 1);

    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconLRed = new GIcon(); 
    iconLRed.image = 'http://arch.info.toje.in/obr/icon/mm_20_lred.png';
    iconLRed.shadow = 'http://arch.info.toje.in/obr/icon/mm_20_shadow.png';
    iconLRed.iconSize = new GSize(12, 20);
    iconLRed.shadowSize = new GSize(22, 20);
    iconLRed.iconAnchor = new GPoint(6, 20);
    iconLRed.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon(); 
    iconRed.image = 'http://arch.info.toje.in/obr/icon/mm_20_red.png';
    iconRed.shadow = 'http://arch.info.toje.in/obr/icon/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

	var iconFoto = new GIcon(); 
	iconFoto.image = 'http://arch.info.toje.in/foto/1obrm.jpg';
	iconFoto.shadow = 'http://arch.info.toje.in/obr/icon/mm_20_shadow.png';
	iconFoto.iconSize = new GSize(45, 45); 
	iconFoto.shadowSize = new GSize(22, 20); 
	iconFoto.iconAnchor = new GPoint(6, 20); 
	iconFoto.infoWindowAnchor = new GPoint(5, 1); 

    var customIcons = [];
    customIcons["sec"] = iconYellow;
    customIcons["kub"] = iconMagenta;
    customIcons["fun"] = iconBlue;
    customIcons["1900-1949"] = iconLBlue;
    customIcons["1950-1999"] = iconLRed;
    customIcons[""] = iconRed;
    //customIcons[""] = iconFoto;

    function load() {
      if (GBrowserIsCompatible()) {
    // určení DIVu, který obsahuje mapu
        var map = new GMap2(document.getElementById("map"));
    // přidání ovládátek na mapu (zoomovadlo, přepínač a náhled)
    map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
    		//map.addControl(new GOverviewMapControl());
    // určení výchozí polohy a měřítka mapy
        map.setCenter(new GLatLng(49.05, 14.50), 9);
    // Načtení a zpracování dat z XML souboru
    //    GDownloadUrl("phpsqlajax_genxml2.php?okres_stavby=&sloh_stavby=%", function(data) {
          GDownloadUrl("phpsqlajax_genxml2.php?stat=CZ&region=Jižní Čechy&okres=%&kraj=%&sloh_stavby=%&id_stavby=%&id_firmy=%&www_stavby=&Neobsah=1", function(data) {
          var xml = GXml.parse(data);
          var stavby = xml.documentElement.getElementsByTagName("marker");
      // smyčka přes všechny stavby v XML souboru 
          for (var i = 0; i < stavby.length; i++) {
            var id_stavby = stavby[i].getAttribute("id_stavby");
            var id_firmy = stavby[i].getAttribute("id_firmy");
            var rok_dokonceni = stavby[i].getAttribute("rok_dokonceni");
            var nazev_stavby = stavby[i].getAttribute("nazev_stavby");
            var nazev_firmy = stavby[i].getAttribute("nazev_firmy");
            var ulice_a_cislo_stavby = stavby[i].getAttribute("ulice_a_cislo_stavby");
            var mesto_stavby = stavby[i].getAttribute("mesto_stavby");
            var sloh_stavby = stavby[i].getAttribute("sloh_stavby");
            var popis_kratky_c = stavby[i].getAttribute("popis_kratky_c");
            var typ_stavby = stavby[i].getAttribute("typ_stavby");
            var www_stavby = stavby[i].getAttribute("www_stavby");
            var point = new GLatLng(parseFloat(stavby[i].getAttribute("lat")),
                                    parseFloat(stavby[i].getAttribute("lng")));
            var marker = createMarker(point, nazev_stavby, rok_dokonceni, nazev_firmy, id_firmy, ulice_a_cislo_stavby, mesto_stavby, sloh_stavby, typ_stavby, id_stavby, popis_kratky_c, www_stavby);

        // přidání značky do globálního pole
        global_markers [global_markers.length] = marker;
        
		//přidání značky na mapu
            map.addOverlay(marker);
          }
        });
      }
    }
        // vytvoření značky
    function createMarker(point, nazev_stavby, rok_dokonceni, nazev_firmy, id_firmy, ulice_a_cislo_stavby, mesto_stavby, sloh_stavby, typ_stavby, id_stavby, popis_kratky_c, www_stavby) {
	//Začátek definice obrázků staveb jako markerů
	//Pro návrat k zobrazování markerů vymazat tuto část do konce a níže uvést: opt.icon = customIcons[sloh_stavby];
	var iconFoto = new GIcon();
	iconFoto.image = "http://arch.info.toje.in/foto/" + id_stavby + "obrm.jpg";
	iconFoto.shadow = 'http://arch.info.toje.in/obr/ramek2.gif';
	iconFoto.iconSize = new GSize(60, 45); 
	iconFoto.shadowSize = new GSize(60, 57); 
	iconFoto.iconAnchor = new GPoint(11, 58); 
	iconFoto.infoWindowAnchor = new GPoint(20, 20); 
	var Text = "Nějaký nápis";
	var Fotka = "http://arch.info.toje.in/foto/" + id_stavby + "obrm.jpg";
	function napis(){document.write(Fotka);}
	//napis();
	//Konec definice obrázků staveb jako markerů
    var opt = new Object();
    opt.title = nazev_stavby;
	opt.icon = iconFoto;
      var marker = new GMarker(point, opt);
	// Pokud existuje odkaz na podrobné informace o stavbě, zobrazí se
	if (www_stavby != "")
	{
	var www = ".. &nbsp;&nbsp;&nbsp;<br><center><a href=" + www_stavby + " target='_blanks'><font color=>více</font></a>&nbsp;(" + www_stavby.substr(7,21) + "...)</center>";
	}
	else
	{
	var www = "";
	}
	        // html obsah informačního okna, které se zobrazí po kliknutí na značku
      var html = "<div id='okno' style='font-size: 8pt; width: 205px; height: '><b>" + nazev_stavby + ", </b>" + rok_dokonceni +", <br><a href=index.php?id_firmy=" + id_firmy + "&stat=CZ&ZobrazRegion=true&Neobsah=1&NePoukazky=1&nazev_regionu=><font color=silver>" + nazev_firmy + ",</font></a><br>" + ulice_a_cislo_stavby +", " + mesto_stavby + "<br/><img src='foto/" + id_stavby + "obrm.jpg' height='140'>" + popis_kratky_c + "" + www + "</div>";

	//obsloužení kliknití na značku
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>
 </head>
 <body onload="load()" onunload="GUnload()">
 <div id="map" style="margin-left: 12px; width: 97%; height: 480px"></div>
 </body>
</html>
Leo
Profil
Co je na nich nesrozumitelneho? Kromě toho, že IE6 hlásí chyby na nesmyslnem řádku. Např.

Řádka 25, znak 5, chyba: GIcon není definováno

se nejspíš týká

var iconYellow = new GIcon();

předtím jste nikde nedefinoval GIcon, jediný předchozí JS je ten stažený od Google, a tam GIcon taky nevidím... Leo
Chamurappi
Profil
Reaguji na Lea:
jediný předchozí JS je ten stažený od Google, a tam GIcon taky nevidím
Ten asi přilinkovává další JS a tam už zřejmě GIcon bude, čemuž napovídá, že novější Exploreři chyby (údajně) nehlásí. Bude tam nějaký méně nápadný karambol.


Reaguji na tonnyho2:
Prosím o odkaz na živou ukázku.
Chybu jsi viděl ve skutečně šestce nebo na nějaké standalone kopii?
tonny2
Profil *
Reaguji na Chamurappi:
GIcon asi opravdu nebude v předchozím JS, který je přelinkovaný z Googlu. Jak ho mám tedy konkrétně na začátku definovat, aby to bylo správně?
A jak mám odstranit ta chybová hlášení na řádcích 83 a 165?

Živá ukázka - jedná se o soubor index.php na adrese http://www.archindex.cz/index.php

Nevim ale, jestli vám ta živá ukázka v současné podobě bude užitečná. Abych udržel soubor funkční i pro návštěvníky s Explorer 6.0, do doby než budu schopen opravit ty chyby, vložil jsem zatím do souboru funkci, která po rozpoznání IE6 automaticky provede refresh stránky, protože jsem si všiml, že po novém natažení IE6 již chyby nehlásí. Jestli se vám to bude hodit, můžu ten refresh třeba na hodinu vypnout, napište prosím v jakou hodinu se vám to hodí. Díky

Ještě jedna záhada - soubor je v provozu v nezměněné podobě už několik měsíců, chybová hlášení se ale objevila až předevčírem. Do té doby ani IE6 neprotestoval. Na serveru v té době žádné změny neproběhly. Je to pro mně záhada. Ještě jednou díky za odpověď.
tonny2
Profil *
Reaguji na Chamurappiho:
Ještě k IE6 - chyby se projevují na běžné instalaci IE6, sám mám k dispozici verzi 6.0.2900.2180 - SP2, ale ověřoval jsem to ještě i na několika dalších počítačích.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0