将Javascript变量传递给Chrome扩展程序,而不必在DOM中运行扩展程序

时间:2014-11-25 15:39:55

标签: 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);
    th.appendChild(s);
}

injectScript( chrome.extension.getURL('script.js'), 'body');

这种方法的问题是我在注入的脚本中进行所有操作,而不是主js文件。这意味着我无权访问Chrome API。我想使用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

0 个答案:

没有答案