Javascript chrome.tabs.executeScript不工作
这是一个简单的扩展,延迟一段时间后发送聊天线路。从控制台日志K可以看到弹出窗口,js应该执行chrom.tabs.executeScript语句,但通道没有打开 控制台日志: 14:19:41正在尝试连接popup.js:26Javascript 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
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文件作为在文档末尾运行的内容脚本来修复问题。