只需一行代码,轻松实现一个在线编辑器


Posted in Javascript onNovember 12, 2013

在大部分人眼里,技术宅给人的印象是沉默寡言,总摸不透他心里想些什么,彼此都保持距离。作为半个程序员,我觉得真正的技术宅大部分时间都在找乐子,鼓捣各种想法,和大部分人的极客心理是一样的,程序员也还爱讲笑话,也喜欢烧菜做饭,虽然大多是为了减减压,这样看来和常人没什么不一样。

不一样的地方,技术宅崇尚极致,喜欢极简,又希望简约不简单,背后就是技术宅满心思的不断的尝试,我正在看着一出好戏在上演:

只需一行代码,轻松实现一个在线编辑器

"程序员 Jose Jesus Perez Aguinaga 在 CoderWall 分享了一个小技巧:在浏览器地址栏中输入一行代码:data:text/html, <html contenteditable> ,回车即可把浏览器变临时编辑器(需要浏览器支持 HTML5 属性 contenteditable)。不少程序员受 Jose 的启发,开始对这行代码加工改造,比如改成支持 Ruby 语法高亮的编辑器……"

从引子中可以看到,本来只是简短的小段代码: data:text/html, <html contenteditable>,经过程序员们不断改造,从一个简单的可编辑页面,逐步变成了包括支持 Java、Ruby、Python 等多种 编程语言高亮的代码编辑器,截至不到 1 个小时的最后更新,我已经看到了一个和 notepad.cc 网站功能相近,使用了第三方网站数据库 API 服务存储内容的 在线编辑器 了:

data:text/html,
<style type="text/css">
#e {
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:0;
  font-size:16px;
}
</style>
<div id="e"></div>
<script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js"></script>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script>
var myKey="SecretKeyz";
$(document).ready(function(){
    var e = ace.edit("e");
    var url = "http://api.openkeyval.org/"+myKey;
    $.ajax({
      url: url,
      dataType: "jsonp",
      success: function(data){
       e.setTheme("ace/theme/tomorrow_night_eighties");
       e.getSession().setMode("ace/mode/markdown");
       e.setValue(data);
      }
    });
    $("#e").on("keydown", function (b) {
      if (b.ctrlKey && 83 == b.which) {
        b.preventDefault();
        var data = myKey+"="+encodeURIComponent(e.getValue());
        $.ajax({
          data: data,
          url: "http://api.openkeyval.org/store/",
          dataType: "jsonp",
          success: function(data){
            alert("Saved.");
          }
        });
      }
    });
});
</script>

将以上代码完整复制,粘贴到 Chrome 或者 Firefox,Safari 浏览器地址栏中(不支持低版本 IE 浏览器),回车打开,稍等片刻一个支持 CTRL + S 保存内容的在线编辑器呈现眼前。

仅一行代码,实现功能相当于系统的记事本程序,感慨技术宅的艺术造诣吧?~

Javascript 相关文章推荐
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
js+css实现增加表单可用性之提示文字
Jun 03 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 Javascript
JavaScript中的异常捕捉介绍
Dec 31 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
js实现tab切换效果实例
Sep 16 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
vue实现表格过滤功能
Sep 27 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
JS中实现replaceAll的方法(实例代码)
Nov 12 #Javascript
jquery.validate的使用说明介绍
Nov 12 #Javascript
javascript 函数及作用域总结介绍
Nov 12 #Javascript
Javascript之this关键字深入解析
Nov 12 #Javascript
js hover 定时器(实例代码)
Nov 12 #Javascript
JavaScript的setAttribute兼容性问题解决方法
Nov 11 #Javascript
javascript实用小函数使用介绍
Nov 11 #Javascript
You might like
PHP VS ASP
2006/10/09 PHP
PHP 事件机制(2)
2011/03/23 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
Python中http请求方法库汇总
2016/01/06 Python
python基于phantomjs实现导入图片
2016/05/13 Python
利用Python检测URL状态
2019/07/31 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
详解python的super()的作用和原理
2020/10/29 Python
python 实现批量图片识别并翻译
2020/11/02 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
数控技校生自我鉴定
2014/04/19 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android