1

在圣诞节期间,我实现了一些代码来使用通道 API 打开我的 App Engine 应用程序的通道,并且运行良好。

最近回了代码,发现坏了,问题似乎出在talkgadget上,客户端代码试图加载到frame中。

我在 12 月 21 日对 /_ah/channel/jsapi 返回的代码进行了快照,并将其与今天的代码进行比较。

当旧版本尝试获取talkgadget.google.com/talkgadget/d?token=[my-token] 时,它被硬编码为使用http。明智的是,代码后来被更改为检查 document.location 中页面的协议并适应使用 https 的情况。现在的问题是,当在 chrome 扩展中运行时,它会抓取 chrome-extension: 作为协议,并且自然通道无法在扩展中打开。

将背景页面的基础设置为我的应用程序 URL 不会更改 document.location,尽管我有一些模糊的概念认为它应该这样做。(不确定标准是怎么说的。)

有解决方法吗?一种想法是创建从我的站点加载的我自己的 iframe,但随后它将嵌套实际的频道 iframe,使事情变得复杂。

我想知道 Moish 或 App Engine 团队的其他人是否可以对此发表评论。看起来这是一个错误,代码应该通过测试协议并搜索基本标记作为替代方案,或者提供某种方式通过 javascript 对象进行配置。

4

1 回答 1

0

是的,这是一个错误。提交了一个修复程序,并且正在推广到生产中;它可能会在大约一周后发布。

同时,您对嵌入在扩展中的 iframe 的想法应该可行。

于 2011-02-13T15:25:33.083 回答