Как установитьBadgeText с переменной - PullRequest
0 голосов
/ 25 января 2020

В background.js я сначала получаю число из другого URL с XMLHttpRequest и XPath (это работает), затем присваиваю номер переменной (это тоже работает), а затем я хочу передать это число как BadgeText и это не удается - вместо числа, которое я получаю только [object Text].

Весь код background.js:

var xhr = new XMLHttpRequest();

xhr.open("GET", "https://app.sistrix.com/app_visindex/__loadModule/lang/de/domain/spiegel.de/source/de/ref/app_controller_efcdc3b3cab713326d8830ac95b499e454ae4e46053a5cc6/_action/_result/_cache//_loadbox/empty/_ajax/1/_module-expire/217287/_controller", true);

xhr.responseType='document';

xhr.send();

xhr.onreadystatechange = function() {
  console.log("XHR callback readyState = " + this.readyState);
  if (this.readyState == 4) {

function getElementByXpath(path) {
  return xhr.response.evaluate(path, xhr.response, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

console.log( getElementByXpath("//div[@class='data-mini']/span/span[@class='value']/text()") );

    var badgeText = getElementByXpath("//div[@class='data-mini']/span/span[@class='value']/text()");
    console.log( badgeText);
    chrome.browserAction.setBadgeText({text: String(badgeText)});

console.log( String(badgeText));

  }
}

Этот console.log( badgeText); дает правильный номер вне, но последний console.log( String(badgeText)); дает [object Text]. Без String перед переменной badgeText я получаю ошибку is not a function.

Как передать числовое содержимое переменной в BadgeText?

1 Ответ

0 голосов
/ 26 января 2020

Переменная badgeText является элементом объекта DOM Text.

Для доступа к тексту следует использовать атрибут data Text

что-то вроде: badgeText.data чтобы получить реальное значение.

Вот документация: https://www.w3schools.com/xml/dom_text.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...