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

时间:2015-01-07 07:23:07

标签: javascript jquery google-chrome-extension

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

而不是jQuery提供的数据,它读取jQuery代码本身,输出应该是“1 000 kr”,而是显示"$("#v4").text();"。这真是太傻了。我的background.js中的代码是,

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

我的popup.js中的代码是,

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

我的第二个问题是我的好人>没有工作,因为它应该工作。当我在浏览器控制台中尝试代码时,我得到正确的输出为true / false。但在我的代码中它不起作用,因为它应该工作,

I.E如果输出为真,它应该触发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 个答案:

答案 0 :(得分:0)

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

  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].id .id对象的tab属性为小写。你的代码应该是:

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