/** * 文件:doc-modal.ts * 作用:帮助文档 / 使用说明弹窗。 */ import { App, Modal, sanitizeHTMLToDom } from "obsidian"; export class DocModal extends Modal { url: string = ''; title: string = '提示'; content: string = ''; constructor(app: App, title: string = "提示", content: string = "", url: string = "") { super(app); this.title = title; this.content = content; this.url = url; } onOpen() { let { contentEl, modalEl } = this; modalEl.addClass('doc-modal'); contentEl.addClass('doc-modal-content'); const titleEl = contentEl.createEl('h2', { text: this.title, cls: 'doc-modal-title' }); const content = contentEl.createEl('div', { cls: 'doc-modal-desc' }); content.appendChild(sanitizeHTMLToDom(this.content)); const iframe = contentEl.createEl('iframe', { cls: 'doc-modal-iframe', attr: { src: this.url, width: '100%', allow: 'clipboard-read; clipboard-write', }, }); } onClose() { let { contentEl } = this; contentEl.empty(); } }