首页 > 解决方案 > Chrome 扩展导入/导出

问题描述

我在尝试使用 Chrome 扩展程序将函数从一个文件导入/导出到另一个文件时失败了。我的问题如下:

我有一个从 manifest.js 文件作为内容脚本加载的脚本。该脚本的名称是script.js。在那个脚本中,我有这样的代码来检测我打开的网页的 URL(为了启动我的扩展程序):

chrome.runtime.sendMessage({ command: 'currentTab' }, (tab) => { console.log('We're in.') });

此外,在同一个脚本中,我有一个附加两个脚本的函数,我将它们用作模块,因为它们具有导出/导入功能。它们是:core.jsutils.js。功能是:

injectScript('extension.../modules/core.js');
injectScript('extension.../modules/utils.js');

function injectScript(scriptURL) {
    const script = document.createElement('script');
    script.setAttribute('type', 'module');
    script.setAttribute('src', scriptURL);
    const head = document.head || document.getElementsByTagName('head')[0] || document.documentElement;
    head.insertBefore(script, head.lastChild);
}

因此,第一个script.js向 background.js 脚本发送一条消息,以检查选项卡 URL,如果一切正确,我将作为模块插入另外两个脚本。

现在,当我检测到网站的 URL 正常时,我想从这个主script.js执行一个函数 start() (在core.js中) ,以便执行core.js中使用导入函数的所有内容来自utils.js

我还检测到,如果我用script.js注入我的utils.js ,它也会通过 manifest.json 注入它。伙计们,我真的被困在这里了。你能帮我处理一下这团意大利面吗?

谢谢!

标签: javascriptgoogle-chrome-extension

解决方案


推荐阅读