【发布时间】:2020-02-22 19:48:11
【问题描述】:
例如,我正在尝试在https://developer.chrome.com/extensions/browserAction 读取 id="tooltip" 元素的文本
以下代码在控制台中可以正常工作:
var element = document.getElementById('tooltip');
if(element != null) {alert(element.innerText);}
else {alert("element contains null");}
来自扩展的相同代码 run 显示“元素包含 null”。
chrome.browserAction.onClicked.addListener
(
function(tab)
{
var element = document.getElementById('tooltip');
if(element != null) {alert(element.innerText);}
else {alert("element contains null");}
}
);
这并不奇怪,因为 document 对象包含 _generated_background_page.html,而不是我的相关页面。我需要的实际页面似乎包含在 tab 对象中。那么现在的问题是如何在tab中搜索“tooltip”?
我用下面的代码查看了上述对象的内容:
alert(JSON.stringify(tab, null, 4));alert(JSON.stringify(document, null, 4));
【问题讨论】:
-
我想知道
alert(element);显示了什么。也许这段代码不在实际页面中运行,并且正在找到其他一些元素。 -
感谢 user212514,这是一个很好的猜测。原来 element 包含
null. -
还发现 document 包含 _generated_background_page.html,而不是我的页面。我需要的实际页面包含在 tab 对象中。所以现在的问题是如何在tab中搜索?
tab.getElementById(...)返回错误。
标签: javascript google-chrome innertext