我正在尝试开发一个扩展程序,将Chromecast功能添加到不支持它的网站。我们的想法是在页面中注入需要的javascript代码来修改默认的html 5播放器以及支持chromecast的播放器。 我正在尝试使用来自github的CastVideos-chrome和CastHelloVideo-chrome。
我首先下载cast_sender.js并在我的扩展名的manifest.json中使用content_scripts指令注入它。 我可以在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>
是在网站代码中注入的,但从未定义过chrome.cast.isAvailable。
在扩展程序中使用chromecast是否存在一些限制,是否可以实现我的目标?
答案 0 :(得分:1)
看起来你可能正在处理2个不同的JS世界,页面世界(主要世界)和扩展世界(内容脚本)。
请参阅https://developer.chrome.com/extensions/content_scripts#execution-environment
答案 1 :(得分:0)
我注意到的第一件事是语法。更改以下内容:
<script>src="chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js"></script>
要:
<script src="chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js" type="text/javascript"></script>