我一直在使用嵌入在script.google.com上生成的网站中的Google地图,使用HTML服务,如下所示:
HtmlService.createTemplateFromFile('index.html');
这太棒了,我制作了一个带有嵌入式地图的网络应用(请参阅https://script.google.com/macros/s/AKfycbzFiIPsnNgDnz8pmykbyok1xwDdL85EEAwqohoSo9G1QasbWNk/exec)。 但是,我现在被警告说,不推荐使用跨域iframe中的" getCurrentPosition和watchPosition用法,并且将在2017年12月左右的M63中禁用"。
麻烦的是,在script.google.com上使用HtmlService.createTemplateFromFile,我没有选择(我知道)将allow="geolocation"
附加到iFrame(HtmlService自动生成iFrame)。这将导致网络应用程序在12月失败。
请告知我应该做些什么来避免问题!!!
非常感谢,
萨拉。
答案 0 :(得分:0)
您可以查看以下链接:1和2: Deprecating Permissions in Cross-Origin Iframes。为了使跨域框架能够使用这些特征,嵌入页面必须指定一个特征策略,该特征策略启用框架的特征。
例如,要在iframe中启用地理位置,嵌入器可以将iframe标记指定为:
<iframe src="https://example.com" allow="geolocation"></iframe>
如果您是使用跨源iframe的网站的开发者 并且你希望那些iframe继续能够请求/使用一个iframe 在上述功能中,嵌入iframe的页面需要 改变。最简单的方法是将标签修改为 包括allow属性,该属性指定权限的名称。 例如,要为iframe启用地理定位和麦克风/摄像头,请执行此操作 将指定以下内容:
<iframe src="https://example.com" allow="geolocation; microphone; camera"></iframe>
allow的有效值包括:
- 地理位置
- 麦克风
- 相机
- MIDI
- 加密的媒体
请注意,如果使用权限的iframe具有相同的权限 作为顶级页面的起源,则不需要进行任何更改。
希望这有帮助!