将Javascript变量传递给Chrome扩展,而扩展不必在DOM中运行
为了使扩展正常工作,我通过扩展将Javascript注入页面本身将Javascript变量传递给Chrome扩展,而扩展不必在DOM中运行,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,为了使扩展正常工作,我通过扩展将Javascript注入页面本身 function injectScript(file, node) { var th = document.getElementsByTagName(node)[0]; var s = document.createElement('script'); s.setAttribute('type', 'text/javascript'); s.setAttribute('src', file);
function injectScript(file, node) {
var th = document.getElementsByTagName(node)[0];
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', file);
th.appendChild(s);
}
injectScript( chrome.extension.getURL('script.js'), 'body');
这种方法的问题是我在注入的脚本中执行所有操作,而不是在主js文件中。这意味着我没有访问ChromeAPI的权限。我想使用chrome.storage
,但现在不行
有没有一种方法可以从网站上的变量中获取数据并将其传递回我的扩展,而不必像这样在页面中工作
编辑,尝试使用window.variable(在chrome控制台中):
在顶部框架中:
window.delimitedMeetingInfo
["1|FOOD*2010*DE|2015/01/05|2015/04/17|LEC|Days TBA|Times TBA|Room TBA", "2|CIS*2500*0104|2015/01/05|2015/04/17|LEC|Mon, Wed, Fri |02:30PM - 03:20PM|ROZH, Room 101", "2|CIS*2500*0104|2015/01/05|2015/04/17|LAB|Wed |10:30AM - 12:20PM|THRN, Room 2418", "3|CIS*2170*0101|2015/01/05|2015/04/17|LEC|Tues, Thur |08:30AM - 09:50AM|CRSC, Room 116", "3|CIS*2170*0101|2015/01/05|2015/04/17|LAB|Tues |02:30PM - 04:20PM|MCKN, Room 233", "4|CIS*1910*0105|2015/01/05|2015/04/17|LEC|Tues, Thur |11:30AM - 12:50PM|MACN, Room 105", "4|CIS*1910*0105|2015/01/05|2015/04/17|LAB|Fri |12:30PM - 02:20PM|MCKN, Room 229", "5|CIS*2250*0103|2015/01/05|2015/04/17|LEC|Mon, Wed, Fri |09:30AM - 10:20AM|JTP, Room 214", "5|CIS*2250*0103|2015/01/05|2015/04/17|LAB|Wed |12:30PM - 02:20PM|REYN, Room 114"]
在扩展框中:
window.delimitedMeetingInfo
undefined
这里纯粹是随地吐痰,但是
window.variable
不起作用吗?我唯一一次使用扩展时,它们是自包含的,因此我不必处理这个特殊的难题。@Archer我需要在页面中使用变量,这很糟糕,但为了确保我的信息是准确的,我需要使用它。检查我将进行的编辑,显示您建议不工作的内容。您显示的示例是两个不同的变量。如果您总是以window.
作为前缀,那么它应该会起作用。@Archer如果我在Chrome中的页面框架上使用window.delimitedMeetingInfo
,我会得到结果,如果我在extensions框架中使用undefined
则可能是,但这个问题/答案可能正是你想要避免的?我不确定。