我正在尝试复制此演示代码: https://developers.google.com/fusiontables/docs/samples/circle_example?hl=en 它使用FusionTablesLayer查询融合表中的数据。主要
var layer = new google.maps.FusionTablesLayer({
query: {
select: 'lat',
from: tableid,
where: 'ST_INTERSECTS(lat, CIRCLE(LATLNG(44.988265,-93.259191), 5000))'
},
key: myKey
});
layer.setMap(map);
根据Chrome扩展程序指南,我将它作为一个页面站点工作,将所有JS移动到另一个文件。我已修改清单文件以允许内容安全策略设置中的所有引用服务器。
{
"name": "GDG Twin Cities - Fusion Tables and Chrome extensions",
"version": "1.0",
"manifest_version": 2,
"content_security_policy": "script-src 'self' https://maps.google.com https://maps.gstatic.com; object-src 'self'",
"description": "Moving Fusion Tables demo into the chrome extension",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"https://maps.google.com/"
]
}
但是我现在在控制台中收到错误 “未捕获的错误:此字段不允许使用字符串生成代码”
我如何使用FusionTablesLayer将我想要的内容添加到我的Chrome扩展程序中?
答案 0 :(得分:0)
融合表代码中必须使用一些eval()
或new Function()
。这是not allowed by CSP by default。尝试以下建议之一:
unsafe-eval
添加到您的CSP中described in docs。答案 1 :(得分:0)
我最终将功能性浏览器操作页面移至网络,并将一个iFrame放入popup.html。