我正在使用 iframe 作为编辑器构建文本编辑器。
我正在处理一个菜单项,当单击该菜单项时,允许用户编写一段代码,然后使用 Prism 语法高亮显示样式,并与其余文本内容一起添加到 iframe 中。
在构建普通网页时,任何包含在 pre 和 code 标签中的代码都会立即被设置为如下所示:
我的问题是我找不到让 Prism 语法荧光笔在我的文本编辑器 iframe 中工作的方法(任何语法荧光笔都会有同样的问题)。
prism.css 文件可以在 iframe 中工作,但 prism.js 文件不能。我知道这是因为当函数运行时,javascript 文件尚未处理输出,该文件添加了使用 css 文件更改颜色所需的类:
此图像显示了单击菜单项时发生的情况。html 被插入到 iframe 中,但没有任何样式。然后,当您按下预览按钮查看博客文章的外观时,代码块文本未应用任何样式,因为 prism.js 未在 iframe 内运行。
我已经尝试将脚本包含在 iframe 本身的 head 标签中,并带有“allow-scripts”和“allow-cross-origin”类,但这不起作用。
我真的很感激任何想法或解决方案。
这是我的代码:
HTML:
JavaScript(单击“”菜单项时调用的函数):