我正在使用以下代码来获取所有打开的标签页网址:
function setPhone(phone) {
chrome.tabs.query({
}, function (tabs) {
var tabURL = tabs[0].url;
console.log(tabURL);
});
}
这是开始监听TCP套接字的扩展的一部分。建立连接并接收命令后,将调用setPhone函数。该函数在事件中被调用:
function onAcceptCallback(tcpConnection, socketInfo) {
var info = "[" + socketInfo.peerAddress + ":" + socketInfo.peerPort + "] Connection accepted!";
log.output(info);
console.log(socketInfo);
tcpConnection.addDataReceivedListener(function (data) {
var lines = data.split(/[\n\r]+/);
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
if (line.length > 0) {
var info = "[" + socketInfo.peerAddress + ":" + socketInfo.peerPort + "] " + line;
log.output(info);
var cmd = line.split(/\s+/);
try {
switch (cmd[0]) {
case 'Phone':
setPhone(cmd[1]);
tcpConnection.sendMessage('+OK-Phone');
break;
case 'SetClientPage':
clientEditPage = cmd[1];
tcpConnection.sendMessage('+OK-SetClientPage');
break;
case 'SetSearchPage':
clientSearchPage = cmd[1];
tcpConnection.sendMessage('+OK-SetSearchPage');
break;
default:
tcpConnection.sendMessage('+ERR-Comando No Encontrado');
}
//tcpConnection.sendMessage(Commands.run(cmd[0], cmd.slice(1)));
} catch (ex) {
tcpConnection.sendMessage(ex);
}
}
}
});
};
最后,这是清单文件:
{
"manifest_version": 2,
"name": "Busca Cliente Lipigas",
"description": "Esta extension permite recibir un numero de telefono desde el servidor DDE y realizar la busqueda del cliente en la pagina Web de Lipigas.",
"version": "1.0",
"permissions": [
"tabs",
"background",
"system.network"
],
"app": {
"background": {
"scripts": ["tcp-server.js", "main.js"],
"persistent": true
}
},
"sockets": {
"tcpServer": {
"listen": "*"
}
}
}
以上所有均产生错误:TypeError:无法读取未定义的属性“查询”
编辑:
为了进行测试,我在扩展名启动时放置了查询方法,并且出现了相同的错误:
chrome.app.runtime.onLaunched.addListener(function () {
chrome.tabs.query({
}, function (tabs) {
var tabURL = tabs[0].url;
console.log(tabURL);
});
console.log('Aplicación iniciada.');
startServer('127.0.0.1', 8888);
});
有什么帮助吗?
干杯
海梅
最佳答案
您正在编写chrome应用程序,但是chrome扩展程序只能访问chrome.tabs.*
api。这就是为什么您得到错误。
关于javascript - 后台页面中chrome.tab.query的“TypeError:无法读取未定义的属性'query'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39175541/