0

Помогите, пожалуйста, найти ошибку и понять почему не работает скрипт:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript"><![CDATA[
function success(position) {
    var mapToYou = document.querySelector('#mapToYou');
    alert("Gotcha!");
    var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
    var myOptions = {
        zoom: 15,
        center: latlng,
        mapTypeControl: false,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL
        },
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var googleMap = new google.maps.Map(mapToYou, myOptions);
    var marker = new google.maps.Marker({
      position: latlng, 
      map: googleMap, 
      title:"You are here!"
    });
}

function error(msg) {
    var mapToYou = document.querySelector('#mapToYou');
    mapToYou.innerHTML = typeof msg == 'string' ? msg : "failed";
    mapToYou.className = 'fail';

    // console.log(arguments);
}

window.addEventListener("load", function() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success, error);
    } else {
        error('not supported');
    }
},false);
]]></script>

Вот, что выводит консоль Гугл Хрома: Creating Application Cache with manifest http://www.site.ru/cache.manifest Application Cache Checking event Application Cache Downloading event

Uncaught SyntaxError: Unexpected token < html5-geolocation.html:390

FB.getLoginStatus() called before calling FB.init(). all.js:52 Application Cache Progress event (0 of 1) http://www.site.ru/*

Application Cache Error event: Resource fetch failed (404) http://www.site.ru/*
2
Uncaught SyntaxError: Unexpected token ! html5-geolocation.html:1
2
Uncaught SyntaxError: Unexpected token _ html5-geolocation.html:1
3
Uncaught SyntaxError: Unexpected token ! html5-geolocation.html:1
Uncaught SyntaxError: Unexpected token _
5
  • 2
    А что значит "не работает"? Какая-то ошибка в консоли? Не работает в IE? Отображается карта не в том месте? Если просто никакой реакции - нажмите в хроме F12, зайдите в консоль разработчика и скопируйте ошибку, которую он вам вывел.
    – Shock
    5 фев 2013 в 15:34
  • Я выделил строки, в которых консоль выдает ошибки!
    – spoilt
    5 фев 2013 в 15:45
  • 1
    Приведенный кусок кода работает без каких либо нареканий. Вот пруф: jsbin.com/uhuwed/3 5 фев 2013 в 15:45
  • Действительно, а на сайте не хочет работать devhelper.ru/html5-geolocation.html
    – spoilt
    5 фев 2013 в 15:59
  • Причем ни в какую. Из-за чего так?
    – spoilt
    5 фев 2013 в 16:03

2 ответа 2

4

Плохая идея вставлять скрипт в визуальный редактор кода. Он вставляет html-теги, которые приводят к неправильному синтаксису и ошибкам. Вынесите скрипт в отдельный файл.

error

1
  • Вынес код js в отдельный файл. Браузер начал спрашивать сообщить ли местоположение или нет, но карта не выводится...
    – spoilt
    7 фев 2013 в 21:23
1

Для начала вот в этом месте попробуйте удалить вот эту глупость (<![CDATA[):

<script type="text/javascript"><![CDATA[

Так само, как и в конце ]]>:

]]></script>
3
  • Удалил, но скрипт не заработал.
    – spoilt
    5 фев 2013 в 15:47
  • Теперь должны "уйти" лишние ошибки. Пожалуйста, покажите снова логи
    – Shock
    5 фев 2013 в 15:49
  • Что находится на строке html5-geolocation.html:403? FB.getLoginStatus() called before calling FB.init(). all.js:52 - почему вызываете getLoginStatus перед вызовом init? Что находится на строке widget-2.0.js:350?
    – BOPOH
    5 фев 2013 в 16:29

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.