mirror of
https://github.com/201206030/novel-plus.git
synced 2025-06-24 04:46:37 +00:00
文件夹结构调整,新增模版自定义功能
This commit is contained in:
@ -0,0 +1,10 @@
|
||||
# 全屏 & 预览 & 查看源码
|
||||
|
||||
## 全屏
|
||||
|
||||
虽然 wangEditor 没有内置全屏功能,但是你可以通过简单的代码来搞定,作者已经做了一个demo来示范。通过运行 demo(文档一开始就介绍了)即可看到该示例页面,直接查看页面源代码即可。
|
||||
|
||||
## 预览 & 查看源码
|
||||
|
||||
如果需要预览和查看源码的功能,也需要跟全屏功能一样,自己定义按钮。点击按钮时通过`editor.txt.html()`获取编辑器内容,然后自定义实现预览和查看源码功能。
|
||||
|
@ -0,0 +1,24 @@
|
||||
# 关于上传附件
|
||||
|
||||
**有用户问到编辑器能否有上传附件的功能?我的建议是不要把附件做到内容中。**
|
||||
|
||||
原因很简单,如果将附件上传之后再插入到富文本内容中,其实就是一个链接的形式。如下图:
|
||||
|
||||

|
||||
|
||||
而用户在用编辑器编辑文本时,操作是非常随意多样的,他把这个链接删了,你服务器要想实时删除上传的附件文件,是难监控到的。
|
||||
|
||||
还有,用户如果要上传很多个附件,也是很难管理的,还是因为富文本的内容变化多样,用户可以随便在什么地方插入附件,而且形式和链接一样。
|
||||
|
||||
-------
|
||||
|
||||
反过来,我们想一下平时用附件和编辑器最多的产品是什么——是邮箱。邮箱如何处理附件的,大家应该很清楚。它把文本内容和附件分开,这样附件就可以很轻松、明了的进行管理,绝对不会和编辑内容的链接产生混淆。
|
||||
|
||||

|
||||
|
||||
你能看到的所有的邮箱产品,几乎都是这样设计的。
|
||||
|
||||
-------
|
||||
|
||||
因此,在你提问编辑器能否上传附件这个问题的时候,可以想一下能否参照邮箱的实现来设计?
|
||||
|
@ -0,0 +1,12 @@
|
||||
# 关于 markdown
|
||||
|
||||
**好多使用者问到,wangEditor编辑器能否集成markdown?——答案是:富文本编辑器无法和markdown集成到一起。**
|
||||
|
||||
-----
|
||||
|
||||
|
||||
你可以参考 [简书](http://www.jianshu.com/) 的实现方式,简书中编辑器也无法实现富文本和`markdown`的自由切换。要么使用富文本编写文章,要么使用`markdown`编写文章,不能公用。
|
||||
|
||||
本质上,富文本编辑器和`markdown`编辑器是两回事儿。
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
# 预防 XSS 攻击
|
||||
|
||||
> 术业有专攻
|
||||
|
||||
要想在前端预防 xss 攻击,还得依赖于其他工具,例如[xss.js](http://jsxss.com/zh/index.html)(如果打不开页面,就从百度搜一下)
|
||||
|
||||
代码示例如下
|
||||
|
||||
```html
|
||||
<script src='/xss.js'></script>
|
||||
<script src='/wangEditor.min.js'></script>
|
||||
<script>
|
||||
var E = window.wangEditor
|
||||
var editor = new E('#div1')
|
||||
|
||||
document.getElementById('btn1').addEventListener('click', function () {
|
||||
var html = editor.txt.html()
|
||||
var filterHtml = filterXSS(html) // 此处进行 xss 攻击过滤
|
||||
alert(filterHtml)
|
||||
}, false)
|
||||
</script>
|
||||
```
|
||||
|
@ -0,0 +1,7 @@
|
||||
# 用于 React
|
||||
|
||||
如果需要将 wangEditor 用于 React 中,可参见如下示例
|
||||
|
||||
- 下载源码 `git clone git@github.com:wangfupeng1988/wangEditor.git`
|
||||
- 进入 React 示例目录 `cd wangEditor/example/demo/in-react/`,查看`src/App.js`即可
|
||||
- 也可以运行`npm install && npm start`查看在 React 中的效果(`http://localhost:3000/`)
|
@ -0,0 +1,7 @@
|
||||
# 用于 Vue
|
||||
|
||||
如果需要将 wangEditor 用于 Vue 中,可参见如下示例
|
||||
|
||||
- 下载源码 `git clone git@github.com:wangfupeng1988/wangEditor.git`
|
||||
- 进入 vue 示例目录 `cd wangEditor/example/demo/in-vue/`,查看`src/components/Editor.vue`即可
|
||||
- 也可以运行`npm install && npm run dev`查看在 vue 中的效果(`http://localhost:8080/`)
|
@ -0,0 +1,3 @@
|
||||
# 用于 Angular
|
||||
|
||||
感谢 [@fengnovo](https://github.com/fengnovo) 提供了一个 angular2 的兼容示例,可供参考 https://github.com/fengnovo/wangEditor/tree/master/example/demo/in-ng2
|
@ -0,0 +1,27 @@
|
||||
# 常用 API
|
||||
|
||||
## 属性
|
||||
|
||||
- 获取编辑器的唯一标识 `editor.id`
|
||||
- 获取编辑区域 DOM 节点 `editor.$textElem[0]`
|
||||
- 获取菜单栏 DOM 节点 `editor.$toolbarElem[0]`
|
||||
- 获取编辑器配置信息 `editor.config`
|
||||
- 获取编辑区域 DOM 节点 ID `editor.textElemId`
|
||||
- 获取菜单栏 DOM 节点 ID `editor.toolbarElemId`
|
||||
- 获取菜单栏中“图片”菜单的 DOM 节点 ID `editor.imgMenuId`
|
||||
|
||||
## 方法
|
||||
|
||||
### 选取操作
|
||||
|
||||
- 获取选中的文字 `editor.selection.getSelectionText()`
|
||||
- 获取选取所在的 DOM 节点 `editor.selection.getSelectionContainerElem()[0]`
|
||||
- 开始节点 `editor.selection.getSelectionStartElem()[0]`
|
||||
- 结束节点 `editor.selection.getSelectionEndElem()[0]`
|
||||
- 折叠选取 `editor.selection.collapseRange()`
|
||||
- 更多可参见[源码中](https://github.com/wangfupeng1988/wangEditor/blob/master/src/js/selection/index.js)定义的方法
|
||||
|
||||
### 编辑内容操作
|
||||
|
||||
- 插入 HTML `editor.cmd.do('insertHTML', '<p>...</p>')`
|
||||
- 可通过`editor.cmd.do(name, value)`来执行`document.execCommand(name, false, value)`的操作
|
Reference in New Issue
Block a user