Javascript chrome.tabs.executeScript不工作

Javascript chrome.tabs.executeScript不工作,javascript,google-chrome-extension,Javascript,Google Chrome Extension,这是一个简单的扩展,延迟一段时间后发送聊天线路。从控制台日志K可以看到弹出窗口,js应该执行chrom.tabs.executeScript语句,但通道没有打开 控制台日志: 14:19:41正在尝试连接popup.js:26 14:19:41在PM窗口弹出窗口中运行脚本。js:24 端口错误:无法建立连接。接收端不存在。其他绑定:235 未捕获错误:尝试使用断开连接的端口对象杂项\u绑定:59 清单文件 { "manifest_version": 2, "name": "autoCh

这是一个简单的扩展,延迟一段时间后发送聊天线路。从控制台日志K可以看到弹出窗口,js应该执行chrom.tabs.executeScript语句,但通道没有打开

控制台日志:

14:19:41正在尝试连接popup.js:26
14:19:41在PM窗口弹出窗口中运行脚本。js:24
端口错误:无法建立连接。接收端不存在。其他绑定:235
未捕获错误:尝试使用断开连接的端口对象杂项\u绑定:59

清单文件

{
  "manifest_version": 2,

  "name": "autoChat",
  "description": "This extension demonstrates an auto chat",
  "version": "2.0",
  "content_scripts": [
    {
      "matches": ["http://www.myfreecams.com/mfc2/static/pm.html*"],
      "js": ["popup.js"]
    }
  ],
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs",
    "http://www.myfreecams.com/mfc2/static/pm.html*"
  ]
}
popup.js

// JavaScript source code
var urlPM = 'http://www.myfreecams.com/mfc2/static/pm.html';
var urlTab;
var domPM;
var tabId;
var lines = [];
var port;
var portStatus;
var x;
var timeId;
var curDate;
var curTime;

function autoChat() {    
    chrome.windows.getAll({ populate: true }, function (windows) {
        for (var w = 0; w < windows.length; w++) {
          for (var t = 0; t < windows[w].tabs.length; t++) {
            urlTab = windows[w].tabs[t].url;
            if (urlTab.substring(0, urlPM.length) != urlPM)
              continue;
            else {
                 tabId = windows[w].tabs[t].id;
                 chrome.tabs.executeScript(tabId, { file: chrome.extension.getURL("background.js") }, function () {
                        console.log(getTime() + " running script in PM window");
                    });
                    console.log(getTime() + " trying to connect");
                    setTimeout(function () { makeConnection() }, 30000);
                }

            }
        }
    }
    );
}

function makeConnection() {
    port = chrome.tabs.connect(tabId, ({ name: "chat" }));
    port.postMessage({ connect: "Can you hear me now?" });
    x = 0;
    setInterval(function () {
        if (x < lines.length)
            port.postMessage(lines[x++]);
    }, 20000)
}

function getTime() {
    var curDate = new Date();
    curTime = curDate.getHours() + ":"
                + curDate.getMinutes() + ":"
                + curDate.getSeconds();
    return (curTime);
}

    document.addEventListener('DOMContentLoaded', function () {
        document.getElementById('Button1').addEventListener('click', autoChat);
        var str = document.getElementById('Chat').value;
        lines = str.split("\n");
    });
//JavaScript源代码
var urlPM=http://www.myfreecams.com/mfc2/static/pm.html';
var-urlTab;
var-domPM;
塔比德变种;
var行=[];
var端口;
var端口状态;
var x;
var-timeId;
变种curDate;
var-curTime;
函数autoChat(){
chrome.windows.getAll({populate:true},函数(windows){
对于(var w=0;w
background.js

 // JavaScript source code
var port;
var curDate;
var curTime;

try {
    chrome.runtime.onConnect.addListener(function (port) {
       console.log(getTime() + " " + port);
       port.onMessage.addListener(function (msg) {
           if (msg.connect == "Can you hear me now?")
               console.log(getTime() + " " + "I heard you");
           else
               console.log(getTime() + " " + msg.line);
            document.getElementById("message_input").value = msg.line;
            var buttons = document.getElementsByTagName('button');
            for (var i = 0; i < buttons.Length; i++) {
                if (buttons[i].value == "Send")
                    alert("clicking")'
                    buttons[i].click();
            }
        });
    });
}
catch(err)
{
    txt="There was an error on this page.\n\n";
    txt+="Error description: " + err.message + "\n\n";
    console.log(txt);
}
function getTime() {
    var curDate = new Date();
    curTime = curDate.getHours() + ":"
                + curDate.getMinutes() + ":"
                + curDate.getSeconds();
    return (curTime);
}
//JavaScript源代码
var端口;
变种curDate;
var-curTime;
试一试{
chrome.runtime.onConnect.addListener(函数(端口){
log(getTime()+“”+端口);
port.onMessage.addListener(函数(msg){
如果(msg.connect==“你现在能听到我说话吗?”)
log(getTime()+“”+“我听到了”);
其他的
console.log(getTime()+“”+msg.line);
document.getElementById(“消息输入”).value=msg.line;
var buttons=document.getElementsByTagName('button');
对于(变量i=0;i
您的背景页中有一个明显的打字错误。。。我纠正了拼写错误,行为没有改变。下面是更正后的文件:我通过删除tabs.executeScript语句并更改清单文件以将background.js文件作为在文档末尾运行的内容脚本来修复问题。