2015-02-18 11 views
11

Das folgende Skript funktioniert in FireFox und Chrome, aber in Internet Explorer 11 schlägt es immer fehl (mit POSITION_UNAVAILABLE).geoLocation.GetCurrentPosition schlägt immer in IE 11

Ich habe den Browser so eingestellt, dass Anfragen für die Position möglich sind, und ich stimme der Aufforderung zu, die der Browser mir bei der Anforderung der Erlaubnis vorlegt.

Ich bin mir fast sicher, dass dies vor ein paar Monaten gut funktionierte, als ich zuletzt damit experimentierte. Was könnte ich bei den IE Einstellungen vermissen?

<script type="text/javascript"> 
    $(document).ready(function() { 
     if (Modernizr.geolocation) 
     { 
      navigator.geolocation.getCurrentPosition(positionSuccess, positionError, { enableHighAccuracy: true, maximumAge: 60000, timeout: 10000 }) 
     } 
     else 
     { 
      $("#GeoError").html("Unable to retrieve current position.") 
     } 
    }); 

    function positionSuccess(position) 
    { 
     $("#Latitude").val(position.coords.latitude); 
     $("#Longitude").val(position.coords.longitude); 
    } 

    function positionError(error) 
    { 
     var message = ""; 

     // Check for known errors 
     switch (error.code) { 
      case error.PERMISSION_DENIED: 
       message = "This website does not have your permission to use the Geolocation API"; 
       break; 
      case error.POSITION_UNAVAILABLE: 
       message = "Your current position could not be determined."; 
       break; 
      case error.PERMISSION_DENIED_TIMEOUT: 
       message = "Your current position could not be determined within the specified timeout period."; 
       break; 
     } 

     // If it's an unknown error, build a message that includes 
     // information that helps identify the situation, so that 
     // the error handler can be updated. 
     if (message == "") { 
      var strErrorCode = error.code.toString(); 
      message = "Your position could not be determined due to " + 
         "an unknown error (Code: " + strErrorCode + ")."; 
     } 

     $("#GeoError").html(message) 
    } 
</script> 

Auch bekomme ich die gleichen Fehler in IE11, wenn ich http://html5demos.com/geo versuchen, wo beide FireFox und Chrome funktionieren.

+0

Können Sie bitte Ihre Skript Referenzen zeigen? –

+0

Nicht sicher, was Sie mit "Skript-Referenzen" meinen. Ich verweise auf eine lokale Kopie von modernizr-2.8.3.js oben auf der Seite und lokale Kopien von jquery-2.1.3.js, bootstrap.js und respond.js direkt vor dem oben gezeigten Skript. Das Problem, das ich erlebe, ist nicht auf meinen Code beschränkt. –

+0

von Skriptverweisen Ich meine, Skript-Tags, die auf js-Skripte verweisen ... .wenn Sie auf Google Maps-API-Skripte verweisen? (maps.google.com/maps/api/js?sensor=false) –

Antwort

0

Klicken Sie in Internetoptionen auf die Registerkarte Datenschutz. Deaktivieren Sie das Kontrollkästchen Websites niemals den physischen Standort anfordern, klicken Sie auf OK.

Nach diesen Änderungen arbeitete die http://html5demos.com/geo jetzt für mich. Anfangs nicht.

+3

"Nie zulassen, dass Websites Ihren physischen Standort anfordern" war bereits deaktiviert. Wie in der ursprünglichen Frage erwähnt, ist der Browser bereits so eingestellt, dass er Standortanforderungen zulässt, und ich werde nach meiner Erlaubnis gefragt, aber es schlägt trotzdem fehl. –

+0

Alle diese Lösungen versucht. Kein Glück. –

1

Ich hatte das gleiche Problem nur in IE11. Ich musste enableHighAccuracy auf false setzen, damit es funktioniert. Sobald ich das getan hatte, arbeitete IE wie erwartet.

+0

Ich setze enableHighAccuracy auf false, aber es hat nicht funktioniert. Meine IE-Version ist 11.1715.14393.0. – cocoa