5

在 Chrome 扩展程序中,我正在尝试获取 gmail 撰写正文内容。

偶尔会出现错误,但不会阻止它工作。

这是作为内容脚本运行的。我相信权限不是这里的问题,因为当缺少权限时,错误是不同的并且操作被Chrome阻止,绝对不是这种情况。

此行出现错误:

encodeURIComponent($canvas.find('iframe').contents().find('body').text());

在哪里

var $canvas = $('#canvas_frame').contents();

有关此错误和可能的转变的任何信息?在此处输入图像描述

4

2 回答 2

4

您无法使用 javascript 读取跨站点内容。Google Chorme 的 XSS 审核员绝不会允许这样做。

请查看http://en.wikipedia.org/wiki/Same_origin_policy

更新 1 -

在 Chrome 2+ 中支持使用 window.postMessage() 进行跨站点通信。请查看此文档https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

于 2012-08-19T07:15:52.847 回答
2

为了给出一个好的答案,我们需要更多信息:

  • 您究竟在哪里运行此代码,是在网页中、扩展程序的内容脚本还是 etension 的后台脚本中?
  • 另外,您的 manifest.json 文件是什么样的?您已请求在哪些网站上运行。

我怀疑这是一个写得很糟糕的错误消息,实际上它是在说:您的扩展程序没有在 apis.google.com 上运行的权限。在这种情况下,只需为 apis.google.com 添加权限。更多详细信息在 Chrome 扩展文档中:http: //developer.chrome.com/extensions/manifest.html#permissions

于 2012-08-20T15:15:22.763 回答