扩展程序读取错误的数据 + gt>不起作用

Extension reads wrong data + gt> doesn't work

本文关键字:gt 不起作用 数据 程序 读取 取错误 扩展      更新时间:2023-09-26

这是我在这里的第一个问题,所以我将尝试提供尽可能多的信息。首先,我的代码中有两个问题,一个是我的扩展读取了错误的数据。

它不是jQuery

提供的数据,而是读取jQuery代码本身,输出应该是"1 000 kr",但它显示"$("#v4").text();"。这太愚蠢了。我后台的代码.js是,

chrome.extension.onMessage.addListener(function(message,sender,sendResponse){
  if(message.text == "getStuff")
    sendResponse({type: ' $("#v4").text(); '});
});

我的弹出窗口中的代码.js是,

chrome.extension.sendMessage({text:"getStuff"},function(response){
  if(response.type != 0)
  $(".cash").append(response.type);
});

我的第二个问题是我的大人当时>没有像它应该的那样工作。当我在浏览器控制台中尝试代码时,我得到正确的输出为真/假。但是在我的代码中,它不能正常工作,因为它应该工作,

即,如果输出为真,它应该触发一个click();事件,但它永远不会这样做。我甚至尝试了parseFloat(),parseInt()和text()。我尝试了许多不同的方法,但没有一种有效,它们在控制台中有效,但在代码中不起作用。我的其他代码工作正常,但这个很愚蠢。

$('.deposit').on('click', function(){
  chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    if($("#v4").html().replace(" ", "").replace("kr", "") > 500){ 
      chrome.tabs.executeScript(tabs[0].Id, {code: 'document.getElementById("i4").click();'}); 
    }
  });
}); 

你的两个问题很容易解决:

  1. 第一个代码段中,您实际上是在发送一个字符串(即'$("#v4").text();'),而不是元素的文本,显然,您将收到一个字符串作为响应。因此,要解决此问题,您只需删除引号和分号(对象内不允许),这是正确的代码:

    chrome.extension.onMessage.addListener(function(message, sender, sendResponse){
        if(message.text == "getStuff") sendResponse({type: $("#v4").text()});
    });
    
  2. 你的第二个问题只是一个愚蠢的错别字:你写的是tabs[0].Id而不是tabs[0].idtab对象的 .id 属性为小写。您的代码应该是:

    chrome.tabs.executeScript(tabs[0].id, {code: 'document.getElementById("i4").click();'}); 
    

注意:自 2021 年 1 月起,将清单 V3 与 chrome.scripting.executeScript() 一起使用,而不是chrome.tabs.executeScript()