35 lines
906 B
JavaScript
35 lines
906 B
JavaScript
/**
|
|
* Chrome 扩展后台脚本
|
|
* 负责将内容脚本注入 Kintone 页面
|
|
*/
|
|
|
|
import { SCRIPT_FILES } from './utils/constants.js';
|
|
|
|
/**
|
|
* 将 Kintone Helper 脚本注入指定标签页
|
|
* @param {Object} tab - Chrome 标签页对象
|
|
* @returns {Promise<void>} 当脚本注入成功时解决
|
|
*/
|
|
const injectKintoneHelperScripts = async (tab) => {
|
|
try {
|
|
// 将所有脚本并行注入
|
|
await Promise.all(
|
|
SCRIPT_FILES.map(scriptFile =>
|
|
chrome.scripting.executeScript({
|
|
target: { tabId: tab.id },
|
|
files: [scriptFile],
|
|
world: 'MAIN',
|
|
})
|
|
)
|
|
);
|
|
|
|
} catch (error) {
|
|
throw new Error(`Kintone Helper script injection failed: ${error.message}`);
|
|
}
|
|
};
|
|
|
|
// 当点击扩展,开始执行脚本注入
|
|
chrome.action.onClicked.addListener(async (tab) => {
|
|
await injectKintoneHelperScripts(tab);
|
|
});
|