2013-03-13 14 views
16

Ich lief in ein seltsames Problem, und ich weiß nicht, was das Problem ist. Die folgende jQuery-Code ist eine vereinfachte Version von dem, was ich erreichen möchte:Google Maps im Inneren Iframe nicht geladen

var iframe = $('<iframe />'); 
iframe.prop('src', 'https://maps.google.com/maps?q=London&hl=en&sll=37.0625,-95.677068&sspn=46.677964,93.076172&t=h&hnear=London,+United+Kingdom&z=10'); 
iframe.appendTo($('body')); 

// When the iframe loads: 
iframe.load(function() { 
    alert(1); 
}); 

die Karte nie geladen wird, und das load() Ereignis wird nie ausgelöst. Chrome meldet den folgenden Fehler:

Refused to display 'https://maps.google.com/maps?q=London&hl=en&sll=37.0625,-95.677068&sspn=46.677964,93.076172&t=h&hnear=London,+United+Kingdom&z=10' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

Wie funktioniert ein Bypass das?

Hier ist ein jsFiddle demo.

Antwort

39

Das Anhängen von &output=embed an das Ende der URL behebt das Problem.

+31

nicht mehr scheinbar :( –

+1

nicht mehr funktionieren – pomarc

+7

@pomarc, die keinen downvote nicht rechtfertigen. Wenn die Antwort geschrieben wurde mehr als vor einem Jahr, das war gültig. Bitte beachten Sie Zurück zum Anfang – BenM

9

Ab 2014 &output=embed die Option funktioniert nicht mehr. Google empfiehlt Ihnen, zur Google Maps-API für die Einbettung zu wechseln. Hier ist ein Quick Start.

Grundsätzlich ist die neue iframe Link lautet:

https://www.google.com/maps/embed/v1/place?key={BROWSER_KEY}&q={YOUR_ADDRESS_ENCODED} 

Erinnern Google Maps Embed API in API-Konsole zu ermöglichen.

p.s. zur Zeit checked Arbeit schreibe ich diese Antwort

+0

Funktioniert nicht für mich mit '/ dir' Richtungen (nicht'/Ort') – kaiser

+1

Hallo @ kaiser, nach dem Setup-Assistenten [hier ] (https://developers.google.com/maps/documentation/embed/start), das letzte Stück der URL sollte '/ directions' anstelle von'/dir' sein – Raptor

+0

Oh, In der Tat. _facepalm_ ... danke. – kaiser

Verwandte Themen