Giter VIP home page Giter VIP logo

arteditor's Introduction

artEditor

artEditor是一款基于jQuery的移动端富文本编辑器,支持插入图片,后续完善其他功能。新增图片上传之前压缩功能 demo,为了更好的效果请将浏览器设置为手机模式。
使用交流:交流

新增开发web editor

引用

在页面中引入下面资源

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>  
<script src="artEditor.min.js"></script>   

CDN

artEditor cdn 加载方式:

<script src="https://unpkg.com/arteditor"></script>  

Options

imgTar

图片上传按钮

limitSize

图片最大限制,默认3兆

showServer

显示从服务端返回的图片,默认是显示本地资源的图片

uploadUrl

图片上传路劲

data

上传图片其他参数,例如:{type: 1}

uploadField

上传图片字段, 默认值:uploadfile

placeholader

富文本编辑器holder

validHtml

粘贴时,去除不合法的html标签

uploadSuccess

图片上传成功回调

uploadError

图片上传失败回调

formInputId

表单隐藏域id,如果设置,则编辑器内容会储存到该元素value值

compressSize

图片超过大小会被压缩,单位(兆)

breaks

换行符,非Firefox默认为div,如果该值为true,则换行符替换为br

beforeUpload

图片上传之前的回调(function),参数图片base64数据

Methods

getValue

获取值,$('#content').getValue()

setValue

设置值,$('#content').setValue('<div></div>')

Example

html:

<div class="article-content" id="content">
</div>

js:

$('#content').artEditor({
	imgTar: '#imageUpload',
	limitSize: 5,   // 兆
	showServer: false,
	uploadUrl: '',
	data: {},
	uploadField: 'image',
	placeholader: '<p>请输入文章正文内容</p>',
	validHtml: ["br"],
  beforeUpload: function(imgBase64) {
    // 处理完之后,必须return图片数据   
    // return imgBase64         
  },
	uploadSuccess: function(res) {
            // 这里是处理返回数据业务逻辑的地方
            // `res`为服务器返回`status==200`的`response`
            // 如果这里`return <path>`将会以`<img src='path'>`的形式插入到页面
            // 如果发现`res`不符合业务逻辑
            // 比如后台告诉你这张图片不对劲
            // 麻烦返回 `false`
            // 当然如果`showServer==false`
            // 无所谓咯
		return res.path;
	},
	uploadError: function(res) {
		//这里做上传失败的操作
        //也就是http返回码非200的时候
		console.log(res);
	}
});

Issues

new Issue

Release

  • 增加获取值和设置值的方法
  • 去掉粘贴时过滤不允许的HTML标签
  • 插入图片自动换行
    2016-03-28
  • 增加拍照上传图片
    2016-04-17
  • 增加表单提交功能
    2017-03-22
  • 增加图片压缩
    2017-05-24
  • 解决上传图片光标定位问题
    2017-05-26
  • 解决Firefox图片压缩的问题
  • 解决上传字段的问题
    2017-06-02
  • 解决chrome换行额外增加div
    2017-12-25
  • 增加beforeUpload回调
    2017-12-25
  • 增加服务端demo

项目文件说明

|- dist 项目打包结果文件夹 |- example 项目案例文件夹 |- service 项目后台数据文件夹 |- src 项目源文件

项目运行方式

  1. npm install下载用来工具
  2. npm start页面

增加服务端demo

1、npm install
2、node server/index.js
访问:
127.0.0.1:9091

arteditor's People

Contributors

siliushi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arteditor's Issues

请问怎样对图片压缩后再上传呢

  1. 请问上传的时候只能是整个html内容一起post到服务器端吗?
  2. 我在另一个页面加载整个html时,有时候会因为图片没加载出来导致图片下面的html都无法加载。我想讲图片数据压缩下,请问能做到么,怎么做,谢谢

图片没有压缩

移动端的图片未压缩上传数据手机网络流量消耗太大,切很慢体验差

图片不能上传问题

将html5网站封装成Android的APK后,点击上传图片无反应,不能选择图片或拍照上传

换行不能原样输出

因为我需要在手机网页上模拟一个聊天界面,要保证空格和换行原样输出,同时要过滤不合法的html标签,
dcd

后端又不想做什么支持,找来找去,觉得您的这个编辑器是最有效的办法。
现在的问题是空格可以原样输出,但是换行的话,就会把html标签也带出来,刚入门没多久的前端菜鸟,不知道是哪个环节出了问题

获取信息的完整代码,请指导!

<script language="javascript"> $(document).ready(function(){ $("form").submit(function(e){ $('#artEditor').val($('#content').getValue()); }); }); </script> <input type="hidden" name="content" id="artEditor">

我是用这个模式来获取的,不过就是图片上传以后都是无法打开,还请您指点下

光标定位问题?

我在移动端使用该编辑器的时候,发现光标随点击文字位置无法定位,总是定位到文字末尾。请问这个是怎么解决的。

some questions

1:当在编辑范围内失去焦点时,插入图片总是默认插入到首部去(移动端聚焦在可编辑范围时会弹出软键盘,会把上传图片按钮弹出可视范围->这个是个人的场景),能否追踪到失去光标的位置,然后插入到上次光标的位置

移动端图片无法删除问题

你好!
请问该编辑器用于部分安卓系统时,出现图片无法删除(编辑时)的情况应该如何处理?
即,光标在图片后面,点击删除键,光标直接跳过图片,删除了图片前面的文字

服务端上传文件要怎么做?

我看了你写的源码,文件内容是直接当做表单参数post提交的,这样服务器端无发按照常规的文件上传逻辑来进行处理。所以,最好能给个服务端的例子吧。

另外,反馈个bug:提交的字段名变成了field

自动增加div

chrome 版本58
按回车 会自动增加div
如何去掉自动增加div

你好,我压缩图片之后 第一次上传后台接收到的为空,第二次才能接收到,请问为什么?

image
Uploading image.png…

index.js:143 kong
index.js:149 Object {images: "data:,"}
index.js:23 上传失败
index.js:25 123
index.js:151 false
index.js:156 地址为空啊!大兄弟 false
index.js:149 Object {images: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…SgBc0ZptO7UAGaTNFJQAuaM0lFIBc0CkooAdWvWOK2KAP/9k="}
index.js:23 /upload/6092cdf4-3eb4-442e-9ffe-f682ef4149d2.jpg
index.js:151 http://192.168.0.9//upload/6092cdf4-3eb4-442e-9ffe-f682ef4149d2.jpg

validHtml 实际没有效果

粘贴时,去除不合法的html标签
但代码中获取的是粘贴前的html,所以也相当于没有过滤代码就直接粘贴了
建议用var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData;
先获取到剪切板的数据,再getData出来,再把这里面的数据进行过滤吧

11

得到的

自动增加div-2

非常感谢解决此问题
但还有个小问题
例如
1
2
3
4
5
如果在2 后面按回车 2和3 之间会空一行 能否把光标定在2和3 之间的空行上?

如何一次上传多个文件

$(_this._opt.imgTar).on('change', function(e) {
var files = e.target.files;
debugger;
for(var i =0;i<files.length;files){
// var file = e.target.files[0];
var file = files[i];
if(i==(files.length-1)){
//e.target.value = '';
}
// if(Math.ceil(file.size/1024/1024) > _this._opt.limitSize) {
// console.error('文件太大');
// return;
// }
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (f) {
// if(_this._opt.showServer) {
// _this.upload(f.target.result);
// return ;
// }
console.log('>>>>>>>'+i);
var img = '';
// var img = '';
_this.insertImage(img);
};
}
});

这月改了貌似又不对

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.