【问题标题】:chrome.tabs not giving output in browser consolechrome.tabs 未在浏览器控制台中提供输出
【发布时间】:2021-10-11 06:56:16
【问题描述】:

我正在使用浏览器的控制台,我想获取所有活动选项卡的所有详细信息。我正在做的是打开浏览器的控制台并输入:

但这给了我以下错误:

VM713:1 Uncaught TypeError: Cannot read property 'query' of undefined
    at <anonymous>:1:13

谢谢

编辑:

var http = require("http"),
  io = require("socket.io"),
  fs = require("fs"),
  util = require("util");

var backlog_size = 2000;
var filename = process.argv[2];
if (!filename) return util.puts("Usage: node <server.js> <filename>");
var linesCount = 0;
// -- Node.js HTTP Server ----------------------------------------------------------
server = http.createServer(function (req, res) {
  console.log(req.url)
  filePath = req.url
  if(filePath=="/"){
  filePath='./index.html'
  fs.readFile(filePath, function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading ' + filePath);
    }
    res.writeHead(200);
    res.end(data);
  });
  }
else
{
  if(filePath=="/client"){
       filePath = './client.html';
  fs.readFile(filePath, function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading ' + filePath);
    }
    res.writeHead(200);
    res.end(data);
  });
}}
});
server.listen(8000, "0.0.0.0");
var fsTimeout
var textToSend=""
// -- Setup Socket.IO ---------------------------------------------------------
var socket = io(server, {
  cors: {
    origin: "*",
  },
});
socket.on("connection", function (client) {
  

  fs.watchFile(filename, function (curr, prev) {
    
    console.log("file changed");
  
    // if (prev.size > curr.size) return { clear: true };
    // var stream = fs.createReadStream(filename, {
    //   start: prev.size,
    //   end: curr.size,
    // });
    // stream.on("data", function (lines) {
    //   console.log(lines.toString());
    

    //   linesCount += count;
    //   console.log(linesCount);
    //   client.emit("tail", { lines: lines.toString("utf-8").split("\n") });
    // });
    if (prev.size > curr.size) return { clear: true };
    
    if(!fsTimeout){
    if(prev.ctime.getTime() != curr.ctime.getTime())
    {
      console.log("file changed")
      var stream = fs.createReadStream(filename, {
        start: prev.size,
        end: curr.size,
      });
      stream.on("data", function (lines) {
        console.log(lines.toString());
        textToSend+=lines.toString();
        textlen=textToSend.split("\n").length;
        // count=lines.toString().split("\n").length
        // linesCount += count;
        // console.log(linesCount);
        console.log(textlen)
        if(textlen<10)
           { 
            console.log("me") 
            socket.emit("tail", { lines: lines.toString("utf-8").split("\n") });}
        else 
           { 
             console.log("client")
            socket.emit("room", { lines:  textToSend.toString("utf-8").split("\n") });  };
      });
    }
  
    fsTimeout = setTimeout(function() { fsTimeout=null }, 5000)}
    
    }
    
    
  );
});

这是我使用的编辑代码并使用 socket.io 使其工作 1

我正在开发一个 node.js 应用程序,我正在使用 socket.io 向多个客户端发送数据,但套接字只能向一个客户端发送数据,即如果我在两个选项卡中打开我的网页,它无法正常工作两个选项卡,但是当我只打开 1 个网页选项卡时,它能够传输数据。我不知道为什么?有人可以帮忙吗,这是我的代码:

server.js

【问题讨论】:

    标签: javascript node.js google-chrome console


    【解决方案1】:

    这是因为 chrome.tabs 是一个 chrome 扩展 API 的对象。您无法使用 chrome 的开发控制台访问它。

    Tabs documentations

    Chrome Extention Quick Start Guide

    【讨论】:

      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 2018-01-31
      • 2013-01-25
      相关资源
      最近更新 更多