【发布时间】:2013-12-23 15:44:36
【问题描述】:
我正在尝试在 Chrome 中开发 Google Cast 发件人应用程序。
API 将变量 cast.isAvailable 设置为 true,并将 MessageEvent 发送到表单的主机页面的窗口对象:
{source: "CastApi", event: "Hello", api_version: [, ]}
当我使用我的开发环境和localhost 时,消息部分没有发生,尽管 api 肯定会被注入和运行(我可以看到使用 chrome 开发人员工具,并且还检查了window.cast.isAvailable in控制台返回true。)
发送消息的代码是文件的最后一行:
"undefined" != typeof chrome && "undefined" != typeof chrome.runtime || window.postMessage({source:cast.NAME, event:"Hello", api_version:cast.VERSION}, "*");
消息永远不会被发布,因为在我的开发机器上,chrome.runtime 是一个对象。
在我的服务器上,由于 chrome.runtime 未定义,消息被发布。
谁能告诉我chrome.runtime 是什么,为什么在我访问本地开发服务器而不是生产服务器时设置它?
如何在 localhost 上调试我的发件人应用程序?
【问题讨论】:
-
您是否有任何其他 Chrome 扩展(安装在您的开发环境中)将内容脚本注入到 samne 页面中?
-
我不这么认为...有没有简单的检查方法?我认为我在每个页面上都有一些扩展 - 但我希望这些扩展也能在我的服务器托管页面上注入。
-
并非所有扩展都在每个页面上运行。您可以像这样找到: 1. 在开发者工具中打开控制台 2. 在底部有一个下拉列表,其中
<page context>作为选定值 3. 单击此下拉列表并找出哪些扩展已将内容脚本注入此页面.查看并比较注入的扩展列表对于开发和生产环境是否相同 -
谢谢 - 两种环境的扩展列表是相同的。
-
您能否发布您的清单以及您访问网页的 2 个 URL(开发和产品)?
标签: google-chrome-extension google-cast