javascript - 在 chrome 扩展中使用 chromecast

标签 javascript google-chrome google-chrome-extension google-cast

我正在尝试开发一个扩展,以将 chromecast 功能添加到不支持它的网站。这个想法是在页面中注入(inject)所需的 javascript 代码,以使用支持 chromecast 的播放器修改默认的 html 5 播放器。 我正在尝试使用来自 github 的 CastVideos-chrome 和 CastHelloVideo-chrome。

我先下载 cast_sender.js并在我的扩展程序的 manifest.json 中使用 content_scripts 指令注入(inject)它。 我可以在 javascript 控制台中看到消息“Found cast extension: boadgeojelhgndaghljhdicfkmllpafd”。然后,我再次使用 content_scripts 指令添加第二个 javascript 文件,该指令在很大程度上受到 github 示例代码的启发。 代码块在:

if (!chrome.cast || !chrome.cast.isAvailable) {
  setTimeout(this.initializeCastPlayer.bind(this), 1000);
  return;
}

我添加调试以查看 chrome.cast 和 chrome.cast.isAvailable 的值。 chrome.cast 包含大量由 cast_send.js 和

生成的信息
<script>src=​"chrome-extension:​/​/​boadgeojelhgndaghljhdicfkmllpafd/​cast_sender.js">​</script>

已注入(inject)网站代码,但从未定义 chrome.cast.isAvailable。

在扩展中使用 chromecast 是否有一些限制,是否可以实现我想要的?

最佳答案

看起来您可能正在处理 2 个不同的 JS 世界,页面世界(主世界)和扩展世界(内容脚本)。

参见 https://developer.chrome.com/extensions/content_scripts#execution-environment

关于javascript - 在 chrome 扩展中使用 chromecast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226236/

相关文章:

google-chrome - 运行 vscode chrome 调试器扩展的 vscode gulp/grunt 脚本

google-chrome - 如何在不带参数的情况下调用Chrome native 消息主机?

javascript - 在 React 中使用 document.querySelector?我应该使用 refs 代替吗?如何?

javascript - 在 React.js 中,我应该在 componentWillMount 还是 componentDidMount 中发出我的初始网络请求?

linux - 与 chrome 相关的 ubuntu 16.04 更新错误

javascript - 如何在 Chrome 控制台中为对象数组着色

javascript - 通过 Chrome 扩展程序阻止按 Content-Type 下载

google-chrome - 您如何测试/调试 Chrome 扩展程序的事件/背景页面?

javascript - 如何从 JSON 对象数组中对 JSON 对象进行分组?

javascript - jQuery 正则表达式匹配返回空字符串