2015-01-07 2 views
1

Это мой первый вопрос, поэтому я постараюсь предоставить как можно больше информации. Во-первых, у меня есть две проблемы в моем коде, одна из них заключается в том, что мое расширение считывает неверные данные.Расширение считывает неверные данные + gt> не работает

Вместо данных, предоставленных 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); 
}); 

Моей вторая проблема заключается в том, что мой greather тогда > не работает как это должен работать. Когда я пытаюсь выполнить код в моей консоли браузера, я получаю правильный вывод как true/false. Но в моем коде он не работает, так как он должен работать,

I.Е если результат правдивый, он должен запустить событие 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();'}); 
    } 
    }); 
}); 

ответ

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();'}); 
    
+0

Это не показывать значение '# v4', а также мой друг сказал мне, что background.js не имеет доступа к странице HTML/данные начиная с это собственный процесс. – Tweath

Смежные вопросы