tinymce原装插件源码分析(一)-hr】的更多相关文章

tinymce简介 tinymce是一款能方便无限扩展的网页富文本编辑器. tinymce原装插件已经十分丰富,对于文本编辑(blog等文章)是绰绰有余,但是应对一些复杂的应用,比如在上面开发html网页等,还是有些捉襟见肘. 鉴于,网上关于tinymce的文章都是基于简单使用,而关于插件编写等,一概搜不到. 本系列文章就tinymce一个较老的版本(4.2.8 (2015-xx-xx))进行分析.js源码见: https://github.com/xunhanliu/static/tree/m…
searchreplace 功能:查找和替换 代码注释见: https://www.xunhanliu.top/static/js/tinymce/plugins/searchreplace/plugin.js 结构 界面的注册还是editor.addMenuItem和editor.addButton.(plugin.js 370-385).不过入口的形式与前几节的有稍许的变化: 他把界面注册部分放到了Plugin函数的init函数内部了: 这里推测:tinymce.PluginManager.…
link 功能描述如下: 单纯放置光标: 1.如果光标放到了<a>上,读取a标签的内容,并弹框显示,确定的时候,更新当前a标签. 2.否则,就创建弹框,确定的时候,按照参数添加a标签. seletion: 1.部分或全部选择<a>的时候,与上面的1一样,更新. 2.选择非文字的<span>.<p>等,会读取选择的文字,并弹框,把显示文字字段填成选择的文字,根据修改,把选择的文字修改成<a>. 当然实际上link的功能不止这些.还有锚点等功能.这需…
fullscreen 作为一款文本编辑器,全屏功能是非常有必要的.在插件中主要是修改一些css style和触发resize事件. style问题(反例): 见github源码:https://github.com/lynzz/element-admin 全屏后: 原因是z-index style风格没有调整好.调整好z-index后: 这里在plugin.js强调三个点: 1. 注意一下窗口的获取方式 2.插件自定义事件在editor上的定义和触发 定义: 触发: 这里的这个事件应该是控制一些…
code: 用于显示源码.主要包含一个弹框.设置显示内容以及内容的更新. function showDialog() { var win = editor.windowManager.open({ title: "Source code", body: { type: 'textbox', name: 'code', multiline: true, minWidth: editor.getParam("code_dialog_width", 600), minHe…
在tinymce中使用css个script tinymce的编辑器中css和script默认是不起作用的.(编辑器主要面向写文章使用,考虑到xss攻击,默认是不启用的) 需要修改tinymce.js中几行代码,可以使其起作用. 1.SaxParser.parse中,关于script标签. L11732- L11758注释掉 这一部分的意思是,在Start element处遇见script等标签,直接跳过,不进行解析(不追加到DOM中). 这个函数的调用,一般在editor.setContent中…
priview 此插件文件结构比较简单,按钮注册.editor.windowManager.open.窗口出现之前的渲染数据的准备.页面代码的准备. 注意: 1.preview的默认宽高设置: 2.css的加载: 3.js的加载与css加载类似 4.editor.windowManager.open的页面加载. 使用onPostRender,由于已经准备好iframe框,作者在onPostRender中把准备好的页面数据追加到iframe上.…
为了不把开发和源码分析混淆,决定分开写; 接下来分析一下插件的源码,说道这里老套路先说一个设计模式,他就是责任链模式 责任链模式:就是把一件工作分别经过链上的各个节点,让这些节点依次处理这个工作,和装饰器模式不同,每个节点都知道后继者是谁,适合为完成同一个请求需要多个处理类的场景; Handler:定义了一个处理请求的标准接口; ConcreteHandler:具体的处理者,处理他负责的部分,根据业务可以结束处理流程,也可以将请求转发给他的后继者; client:发送者,发起请求的客户端; 责任…
背景 不知道webpack插件是怎么回事,除了官方的文档外,还有一个很直观的方式,就是看源码. 看源码是一个挖宝的行动,也是一次冒险,我们可以找一些代码量不是很大的源码 比如webpack插件,我们就可以通过BannerPlugin源码,来看下官方是如何实现一个插件的 希望对各位同学有所帮助,必要时可以通过源码进行一门技术的学习,加深理解 闲言少叙,直接上代码 https://github.com/webpack/webpack/blob/main/lib/BannerPlugin.js 配合文…
Android Small插件化框架源码分析 目录 概述 Small如何使用 插件加载流程 待改进的地方 一.概述 Small是一个写得非常简洁的插件化框架,工程源码位置:https://github.com/wequick/Small 插件化的方案,说到底要解决的核心问题只有三个: 1.1 插件类的加载 这个问题的解决和其它插件化框架的解决方法差不多.Android的类是由DexClassLoader加载的,通过反射可以将插件包动态加载进去.Small的gradle插件生成的是.so包,在初始…