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


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 相关文章推荐
js每次Title显示不同的名言
Sep 25 Javascript
JavaScript 直接操作本地文件的实现代码
Dec 01 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
JS 操作符整理[推荐收藏]
Nov 15 Javascript
jQuery focus和blur事件的应用详解
Jan 26 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
Aug 20 Javascript
Electron-vue开发的客户端支付收款工具的实现
May 24 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 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(1)
2006/10/09 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python基础教程之利用期物处理并发
2018/03/29 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
合作意向书格式及范文
2014/03/31 职场文书
春节超市活动方案
2014/08/14 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
孔子观后感
2015/06/08 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫