0

このデモコードを複製しようとしています: 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拡張機能に取り込むにはどうすればよいですか?

4

2 に答える 2

0

フュージョン テーブル コードで使用されているeval()か、使用されている必要があります。new Function()これは、デフォルトでは CSP によって許可されていません。次の提案のいずれかを試してください。

于 2012-11-02T07:24:19.450 に答える
0

最終的に、機能するブラウザー アクション ページを Web に移動し、iFrame を popup.html に配置しました。

于 2012-11-20T15:12:40.653 に答える