我正在开发一个网络扩展,我需要一些帮助。
我一直在使用activeTab中的变量作为数据创建一个弹出窗口,以填充应该在弹出窗口中打开的预先存在的html文件。
最初我想如果我在单独的JS文件中做了类似的事情
function gethtml() {
var something = document.querySelector('something').innerHTML;
var anything = document.getElementsByTagName('something');
var anythingArray = Array.from(anything);
var obj = {
from: from,
array: anythingArray
}
return obj;
}
然后使用类似的东西调用它
function blah() {
getCurrentTab().then((tabs) => {
browser.tabs.executeScript(tabs[0].id, {
file: '/content_scripts/seperate.js'
}, function(data) {
// do something with returned obj like passing the variables to another JS file using the listener event;
});
});
}
运行在当前正在运行的click事件上,然后我可以使用返回的obj并在弹出窗口中预填充现有的html文件。但是数据永远不会返回,我尝试用它做的任何事都只会导致接收null或undefined。
是否有一些我正在尝试做的例子,或者我是否以正确的方式解决这个问题?
我考虑过使用webStorage,但是当我尝试使用时,所讨论的数组只是HTMLCollection而不是实际内容,我仍然无法从第二个JS文件访问它。
任何帮助都会非常有用!