相关疑难解决方法(0)

使用内容脚本将代码插入页面上下文

我正在学习如何创建Chrome扩展程序.我刚开始开发一个来捕捉YouTube活动.我想将它与YouTube Flash播放器一起使用(稍后我将尝试使其与HTML5兼容).

manifest.json的:

{
    "name": "MyExtension",
    "version": "1.0",
    "description": "Gotta catch Youtube events!",
    "permissions": ["tabs", "http://*/*"],
    "content_scripts" : [{
        "matches" : [ "www.youtube.com/*"],
        "js" : ["myScript.js"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

myScript.js:

function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
Run Code Online (Sandbox Code Playgroud)

问题是控制台给了我"开始!" ,但没有"状态改变!" 当我播放/暂停YouTube视频时.

将此代码放入控制台时,它可以正常工作.我究竟做错了什么?

javascript google-chrome youtube-api google-chrome-extension content-script

452
推荐指数
5
解决办法
24万
查看次数

从 Chrome 扩展程序到网页的通信

我知道可以将消息从网页发送到 chrome 扩展程序并获得返回网页的正常响应,但反过来也可能吗?

我的问题“我需要能够将请求发送到网页并等待可以在扩展中使用的响应。也许不能使用 postMessage ?”

我知道文档说“只有网页可以发起连接”。(https://developer.chrome.com/extensions/messaging#external-webpage

这是我到目前为止所尝试过的。

背景.js

chrome.extension.sendMessage("Hello from extension to webpage");
window.postMessage("Hello from extension to webpage");
chrome.tabs.sendMessage(TAB_ID, "Hello from extension to webpage");
Run Code Online (Sandbox Code Playgroud)

webpage.js(不是扩展的一部分)

window.onmessage = (event) => {
  // Waiting for that message.
  console.info("Event received ", event);
}
window.chrome.runtime.connect(CHROME_EXTENSION_APP_ID).onMessage.addListener(function (){
  function(request, sender, sendResponse) {
     console.info("Event received from the extension", event);
  }
})  
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激:)

javascript google-chrome google-chrome-extension

7
推荐指数
1
解决办法
8002
查看次数