在setup为tinymce内的代码增添js块

m0_67646599 2023-09-22 16:36:50

我在tinymce中尝试着加入一些js代码方便用户可以更好的看到呈现的效果,但是我试过很多方法,js对tinymce的iframe不起作用

setup: function(editor) {
				//在这里加载额外的javascript文件
				editor.on('init',function(){
					const scriptId=editor.dom.uniqueId();
					const scriptEle=editor.dom.create("script",{
						id:scriptId,
						type:"text/javascript",
						src:"js/1.js"
					})
					editor.getDoc().getElementsByTagName("head")[0].appendChild(scriptEle);
				});
			},

我也试了用创建<script>标签方面,结果依然无果,有无大神会呀~

...全文
234 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
enginexpert 2023-09-22
  • 打赏
  • 举报
回复

您在TinyMCE编辑器中无法直接通过js代码操作iframe的内容,因为iframe中的内容与主页面是不同的域。
但是TinyMCE提供了丰富的API可以实现您的需求。主要有以下两种方法:
1、使用editor对象操作内容
可以通过editor对象的执行命令来修改编辑器中的内容,例如:
tinymce.activeEditor.execCommand('bold'); // 加粗
tinymce.activeEditor.execCommand('italic'); // 斜体
2、使用editor的内容Document对象
可以通过editor.getDoc()获取编辑器的document对象,然后使用DOM操作对内容进行修改,例如:
let editorDoc = tinymce.activeEditor.getDoc();
let editorBody = editorDoc.body;

let boldElement = editorDoc.createElement('b');
boldElement.innerHTML = 'This is bold';
editorBody.appendChild(boldElement);
总之,需要使用TinyMCE提供的接口和对象来对编辑器中的内容进行操作,直接通过js对iframe不起作用。

m0_67646599 2023-09-23
  • 举报
回复
@enginexpert 我曾这样尝试过并把script标签加在了iframe的head里面,但是并没用,并且我也查看了iframe里的head有,估计是不能让我跨域还是怎样的

147

社区成员

发帖
与我相关
我的任务
社区描述
欢迎来到 Tinymce-plugin 这是一个专注 提供 强大、好用、丰富 的 tinymce 富文本编辑器 插件、扩展 和 技术 的技术社区,方便 交流讨论,分享经验 。
开源github前端 个人社区 四川省·成都市
社区管理员
  • Five-菜鸟级
  • 爱编程的喵喵
  • Jioho_
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎来到 Tinymce-plugin

这是一个专注 提供 强大、好用、丰富 的 tinymce 富文本编辑器 插件、扩展 和 技术 的技术社区,方便 交流讨论,分享经验 。

本社区有多个不错的插件或者项目,也有各种问题求解,经验分享,优质好文,助你解决开发使用中的问题。

 

 

 

试试用AI创作助手写篇文章吧