我正在尝试开发一个扩展,以将 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/