Javascript 如何使用变量setBadgeText
在Javascript 如何使用变量setBadgeText,javascript,google-chrome-extension,Javascript,Google Chrome Extension,在background.js中,我首先使用XMLHttpRequest和XPath从不同的url获取一个数字(这是可行的),然后将该数字分配给一个变量(这也是可行的),然后我想将该数字作为BadgeText传递,但这失败了-而不是我只获取的数字[对象文本] background.js的整个代码是: var xhr = new XMLHttpRequest(); xhr.open("GET", "https://app.sistrix.com/app_visindex/__loadModule/
background.js
中,我首先使用XMLHttpRequest
和XPath
从不同的url获取一个数字(这是可行的),然后将该数字分配给一个变量(这也是可行的),然后我想将该数字作为BadgeText
传递,但这失败了-而不是我只获取的数字[对象文本]
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(文本)
给出了正确的数字,但最后一个console.log(字符串(badgeText))代码>给出[对象文本]
输出。如果变量前没有字符串
,则会出现错误不是函数
如何将变量的数字内容传递到BadgeText
?变量是DOM文本对象元素
要访问文本,应使用text
类似于:badgeText.data
以获取实际值
以下是文档:应该是badgeText.innerText,但最好使用devtools在代码中设置断点,并在“源代码”面板调试器中检查实际值。或者使用stringValue
而不是singleNodeValue
和STRING类型而不是第一个排序的节点类型。您的第二个建议似乎有效:)谢谢!