如何使用变量设置徽章文本



background.js中,我首先从不同的 url 中获取一个带有XMLHttpRequestXPath的数字(这有效(,然后将数字分配给变量(这也有效(,然后我想将此数字作为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]。变量badgeText之前没有String,我得到一个错误is not a function.

如何将变量的数字内容传递到BadgeText

badgeText变量是一个 DOM Text 对象元素。

为了访问文本,您应该使用data属性Text

像这样的东西:badgeText.data才能获得真正的价值。

以下是文档:https://www.w3schools.com/xml/dom_text.asp

最新更新