| import { Ketcher } from 'ketcher-standalone'; | |
| // 导出一个初始化函数,以便在 HTML 中调用 | |
| export function initializeKetcher(containerId, binaryWasmPath) { | |
| const ketcherInstance = new Ketcher(containerId, { | |
| preset: 'default', | |
| binaryWasmPath: binaryWasmPath, | |
| }); | |
| // 设置初始 SMILES 为 "c1cccc1" | |
| ketcherInstance.setMolecule("c1cccc1").then(() => { | |
| console.log("初始 SMILES 加载完成"); | |
| }).catch(err => { | |
| console.error("加载初始 SMILES 时出错:", err); | |
| }); | |
| // 监听 Ketcher 的 'change' 事件,当分子结构改变时触发 | |
| ketcherInstance.on('change', () => { | |
| ketcherInstance.getSmiles().then(smiles => { | |
| console.log("生成的新 SMILES:", smiles); | |
| // 在此处可以添加与 Gradio 后端的交互逻辑 | |
| }).catch(err => { | |
| console.error('获取 SMILES 时出错:', err); | |
| }); | |
| }); | |
| // 监听 Ketcher 的 'load' 事件,当分子结构加载时触发 | |
| ketcherInstance.on('load', () => { | |
| ketcherInstance.getSmiles().then(smiles => { | |
| console.log("加载的 SMILES:", smiles); | |
| }).catch(err => { | |
| console.error('获取 SMILES 时出错:', err); | |
| }); | |
| }); | |
| } | |