2013-03-13 178 views
16

我遇到了一个奇怪的问题,我不知道问题是什么。下面的jQuery代码是什么,我想实现一个简化版本:iframe无法加载谷歌地图

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); 
}); 

的地图是永远不会加载,并且load()事件永远不会触发。 Chrome浏览器报告以下错误:

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'.

怎样一个旁路呢?

这里是jsFiddle demo

回答

39

&output=embed附加到URL的末尾可修复问题。

+31

不再明显:( – 2014-03-18 00:16:16

+1

不工作了 – pomarc 2014-07-25 16:36:24

+7

@pomarc不保证downvote当答案发布一年多前,这是有效的。 – BenM 2014-07-25 20:29:53

9

截至2014年,该选项&output=embed不工作了。 Google建议您切换到Google Maps Embed API。这是一个Quick Start

基本上,新的IFRAME链接:

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

记住,使谷歌地图API嵌入在 API控制台。

p.s.此刻检查工作我写这个答案

+0

不适合我用'/ dir'指示(不是'/ place') – kaiser 2015-08-21 09:13:12

+1

嗨@kaiser,按照安装向导[here ](https://developers.google.com/maps/documentation/embed/start),最后一部分URL应该是'/ directions'而不是'/ dir' – Raptor 2015-08-21 09:34:56

+0

噢。的确。_facepalm_ ...谢谢。 – kaiser 2015-08-21 12:14:33