![](/img/trans.png)
[英]getElementById not working in Google Chrome extension for <embed>
[英]Google Chrome: can't getElementById from chrome extension
例如,我正在尝试在https://developer.chrome.com/extensions/browserAction读取 id="tooltip" 元素的文本
以下代码在控制台中可以正常工作:
var element = document.getElementById('tooltip');
if(element != null) {alert(element.innerText);}
else {alert("element contains null");}
来自扩展的相同代码 r u n 显示“元素包含 null”。
chrome.browserAction.onClicked.addListener
(
function(tab)
{
var element = document.getElementById('tooltip');
if(element != null) {alert(element.innerText);}
else {alert("element contains null");}
}
);
这并不奇怪,因为文档object 包含_generated_background_page.html ,而不是我的页面。 我需要的实际页面似乎包含在选项卡object 中。 所以现在的问题是如何在选项卡中搜索“工具提示”?
我使用以下代码查看上述对象的内容: alert(JSON.stringify(tab, null, 4));
alert(JSON.stringify(document, null, 4));
也许是 onclick 没有点击
chrome.browserAction.onClick.addListener
(
function(tab)
{
var element = document.getElementById('tooltip');
alert(element.innerText);
}
);
我似乎找到了解决办法。 我不确定它是否是最优雅的,但它仍然有效。
我创建了第二个名为script2.js的脚本,并从script1.js引用它。
以下是我单击浏览器工具栏中的扩展程序按钮时执行的script1.js的内容:
chrome.browserAction.onClicked.addListener(function(tab){
chrome.tabs.executeScript(null, {file: "script2.js"});
});
script1.js调用包含主要代码的script2.js :
var element = document.getElementById('tooltip');
if(element != null) alert(element.innerText);
else alert('element is null');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.