自己制作页面编辑器(js+css)
来源:互联网 发布:什么是scratch编程 编辑:程序博客网 时间:2024/06/05 08:52
编辑器都有什么功能。文字加粗,上传图片,改变大小等等。此例仅包含文字加粗和图片上传。
首页你要知道html标签中的contenteditable="true"属性,不知道的自行去百度。(可让div可编辑)
其次知道js的document.execCommand(),不知道的自行去百度(可以实现浏览器菜单的很多功能. 如保存文件,打开新文件,撤消、重做操作…等等. 有了这个方法,就可以很容易的实现网页中的文本编辑器.)
最后说下图片上传,此处用了一个ajaxfileupload.js的插件。(图片上传给后台(如php文件),后台返回图片地址,前台再把该图片插入到该编辑器中)
该插件可能会报handleError相关错误,加上下面代码即可
handleError: function (s, xhr, status, e) { // If a local callback was specified, fire it if (s.error) { s.error.call(s.context || s, xhr, status, e); } // Fire the global callback if (s.global) { (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]); } },
效果如图
下面直接放代码
index.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>bianjiqi技术支持qq:41435301</title> <script src="./jquery.js"></script> <style> /**编辑器样式**/ .textareatitle { width: 844px; height: 20px; border: 1px solid #ccc; border-bottom: none; } .textareatitle a,.textareatitle span { padding-left: 5px; padding-right: 5px; font-weight: bold; border-right: 1px solid #ccc; cursor: pointer; overflow: hidden; display: block; float: left; color:#000000; } .textareaedit{ width: 844px; height: 150px;border: 1px solid #ccc;resize:vertical; overflow-y:auto; } .fileinput { position: relative; display: inline-block; overflow: hidden; cursor: pointer; } .fileinput input { position: absolute; font-size: 100px; right: 0; top: 0; filter:alpha(opacity=0); opacity:0; cursor: pointer; } </style> </head> <body> <div style="width:850px;"> <div class="textareatitle" id="editControls"> <a data-role='bold' href='javascript:void(0);'>B</a> <span class="fileinput">图片 <input type="file" multiple class="input-file pic-1" id="arrt_pic" name="images" onchange="uploadPic(this);"> </span> </div> <div class="textareaedit" style=" " contenteditable="true"></div> </div> <script src="./ajaxfileupload.js"></script> <script> /********编辑器插入图片*********/ function uploadPic(input_file) { var current_input = input_file; var upload_id = $(input_file).attr('id'); $.ajaxFileUpload ( { url: 'upload.php', //用于文件上传的服务器端请求地址 secureuri: false, //是否需要安全协议,一般设置为false fileElementId: upload_id, //文件上传域的ID dataType: 'json', //返回值类型 一般设置为json type: 'POST', async: true, success: function (data) //服务器成功响应处理函数 { if (data.status == 'Y') { $(".textareaedit").append("<img src='./upload/" + data.msg + "'>"); } else { alertLayer({text: '您上传的文件不符合要求'}); } }, error: function (e) { alertLayer({text: '您上传的文件不符合要求'}); }, complete: function () { } } ); } /*******编辑器功能*******/ $('#editControls a').click(function (e) { switch ($(this).data('role')) { case 'h1': case 'h2': case 'p': document.execCommand('formatBlock', false, '<' + $(this).data('role') + '>'); break; default: document.execCommand($(this).data('role'), false, null); break; } }) </script> </body></html>
upload.php
<?php$res["error"] = "";//错误信息$res["msg"] = "";//提示信息$name = $_FILES['images']['name'];$path = dirname(__FILE__) . "\upload\\" . $name;if(move_uploaded_file($_FILES['images']['tmp_name'],$path)){ $res["status"] = "Y"; $res["msg"] = $name;}else{ $res["status"] = "N"; $res["error"] = "error";}echo json_encode($res);?>
欢迎大家多多交流。qq:41435301
0 0
- 自己制作页面编辑器(js+css)
- 静态资源(JS/CSS)存储在localStorage,适用于Web移动端H5页面制作
- DIV+CSS布局入门示例(三)页面顶部制作
- DIV+CSS布局入门示例(三)页面顶部制作
- Js+Css 制作简易柱状图
- js制作使整页变灰的页面
- JS制作支付倒计时页面
- 制作一张简单的网页(HTML+CSS+JS)【1】
- 制作百度搜索首页(附赠HTML,js,css)
- 自己制作友好的页面“确认对话框”
- JS注入CSS到页面
- js+div+css展示页面
- CSS制作自动弹出介绍页面
- 页面制作HTML+CSS基础乱炖
- ide 页面进行css检查时候会抖动页面的解决办法(防止自己忘记)
- 自己制作 js ajax 请求类
- 页面脚本(js、css等)调试技巧介绍
- 缓存页面中的不变元素(CSS/JS/IMAGE)
- 设计模式——抽象工厂模式
- 关于Android MediaCodec 的内容
- 基于经度坐标校正鱼眼图像
- 关于Android strings.xml-你应该了解的几个原则
- hdu1198 Farm Irrigation —— dfs or 并查集
- 自己制作页面编辑器(js+css)
- 第30课:彻底解密Spark 2.1.X中Shuffle中JVM内存使用及配置内幕详情
- 修改Android打包时 assets下文件拷贝
- (转)centos liveCD liveDVD netinstall minimal DVD1 DVD2 版本区别
- hdu1728 逃离迷宫 dfs搜索剪枝
- eclipse 调式 step into/step over/Drop to Frame
- leetcode53
- 删除记录遇到约束问题
- Google的Python开源Fire工具使用笔记