奇技淫巧之浏览器秒秒钟变编辑器

奇技淫巧之浏览器秒秒钟变编辑器

  此文是翻译来的,原文戳这里

由来

  有时,我仅仅想输入一些乱码。仅仅想放空自己。用编辑器来输入这些胡言乱语会使我很苦恼,因为这样会弄乱我项目的工作区。(我很挑剔,我懂得)

  所以我就这么做。自从我生活在有浏览器的地方,我就只需打开新的标签,然后在地址栏里输入下面的内容:

data:text/html, <html contenteditable>

  瞧,浏览器记事本。

为什么代码会有效

  你不需要记住它。它不是rocket science(哈哈,这里不是火箭科学,更不是那部电影,此处指艰深的学问以及复杂伤身的工作)。我们正在使用数据URI格式Data URI’s format并且告诉浏览器对html进行渲染(尝试一下”javascript:alert(‘Bazinga’);”)。html所说的内容是一种带有HTML的contenteditable(内容可编辑)的属性的HTML line。这仅仅在能识别这种属性的现代的浏览器上是有效的。点击编辑吧!

  以上就是翻译的全部内容,原文戳这里

  效果图:

More

  在作者发布这个消息之后,有很多的大神开始开动脑筋,绞尽脑汁,开始创作了各种碉堡的浏览器编辑器。下面这一款我比较喜欢的:

1 data:text/html, <style type="text/css">.e{position:absolute;top:0;right:0;bottom:0;left:0;}</style><div class="e" id="editor"></div><script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script><script>var e=ace.edit("editor");e.setTheme("ace/theme/monokai");e.getSession().setMode("ace/mode/java");</script>

  效果出众,最重要的是支持多种语言想用其它的语言的话,仅仅需要把ace/mode/python用下面的换掉即可:

 1 Markdown -> `ace/mode/markdown`
 2 Python -> `ace/mode/ruby`
 3 C/C++ -> `ace/mode/c_cpp`
 4 Javscript -> `ace/mode/javascript`
 5 Java -> `ace/mode/java`
 6 Scala- -> `ace/mode/scala`
 7 CoffeeScript -> `ace/mode/coffee`
 8 and
 9 css, html, php, latex,
10 tex, sh, sql, lua, clojure, dart, typescript, go, groovy, json, jsp, less, lisp,
11 lucene, perl, powershell, scss, textile, xml, yaml, xquery, liquid, diff and many more...

  更碉堡的是,主题也可以换的,仅仅把ace/theme/monokai用下面的换掉即可:

1 Eclipse -> ace/theme/eclipse
2 GitHub -> ace/theme/github
3 TextMate -> ace/theme/textmate
4 and
5 ambiance, dawn, chaos, chrome, dreamweaver, xcode, vibrant_ink, solarized_dark, solarized_light, tomorrow, tomorrow_night, tomorrow_night_blue,
6 twilight, tomorrow_night_eighties, pastel_on_dark and many more..

  还有一个比较好玩的,是一个在编辑过程中会变色的,大家可以试试:

1 data:text/html, <html><head><link href=‘http://fonts.googleapis.com/css?family=Open+Sans‘ rel=‘stylesheet‘ type=‘text/css‘><style type="text/css"> html { font-family: "Open Sans" } * { -webkit-transition: all linear 1s; }</style><script>window.onload=function(){var e=false;var t=0;setInterval(function(){if(!e){t=Math.round(Math.max(0,t-Math.max(t/3,1)))}var n=(255-t*2).toString(16);document.body.style.backgroundColor="#ff"+n+""+n},1e3);var n=null;document.onkeydown=function(){t=Math.min(128,t+2);e=true;clearTimeout(n);n=setTimeout(function(){e=false},1500)}}</script></head><body contenteditable style="font-size:2rem;line-height:1.4;max-width:60rem;margin:0 auto;padding:4rem;">

  

  另外我已经将代码放在github上了,欢迎Fork。浏览器-编辑器

  最后附上一张Python编辑器的图:

  以上。

  PS:本博客欢迎转发,但请注明博客地址及作者,因本人水平有限,若有不对之处,欢迎指出,谢谢~

  博客地址:http://www.cnblogs.com/voidy/

  博客新址:http://voidy.net

  <。)#)))≦

时间: 2024-11-06 03:03:18

奇技淫巧之浏览器秒秒钟变编辑器的相关文章

20个最强的基于浏览器的在线代码编辑器

20个最强的基于浏览器的在线代码编辑器,你听过或者用过吗? 1. Compilr Compilr是一个在线编译器和在线IDE.可以用它来开发PHP, C, C++, Ruby.在浏览器中编译Java, C# 和 VB.net等. 马上使用 2. Dabblet 跨浏览器兼容,对前端攻城师们来说是一个不得不处理的问题.为了在浏览器间呈现统一的显示效果,攻城师们不仅要为每个游览器添加CSS前缀,甚至还需要用到一些特殊的CSS Hack技巧.于是,jsFiddle.JSBin等前端代码的在线测试工具应

Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43131133,本文出自:[张鸿洋的博客] 1.概述 今天打开建行看存款,一看伤心欲绝,再看:我擦,这个圆形菜单挺炫.于是,为了掩盖我悲痛的心情,我决定是实现这个效果.好了,其实还有个原因,记得我初学android那会我做的应用被鄙视了,说我的菜单没有建行的好看,那么今天,证明自己的时刻到了.我决定用我做的圆形菜单的控件,32s实现个建行的菜单给他看看,顺便教教他~~ 玩笑开完,

Android 造炫目的圆形菜单 秒秒钟高仿建行圆形菜单

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43131133,本文出自:[张鸿洋的博客] 1.概述 今天打开建行看存款,一看伤心欲绝,再看:我擦,这个圆形菜单挺炫.于是,为了掩盖我悲痛的心情,我决定是实现这个效果.好了,其实还有个原因,记得我初学android那会我做的应用被鄙视了,说我的菜单没有建行的好看,那么今天,证明自己的时刻到了.我决定用我做的圆形菜单的控件,32s实现个建行的菜单给他看看,顺便教教他~~ 玩笑开完,

上周热点回顾(2.2-2.8)

热点随笔: · 我们搞开发的为什么会感觉到累(施瓦小辛格)· (原)离开,只为更好的活着(衍悔)· 传播正能量——做一个快乐的程序员(缘生梦)· 一年之计在于春,2015开篇:PDF.NET SOD Ver 5.1完全开源(深蓝医生)· [PaPaPa]实现缓存决策 - 让你的缓存变的有智慧(寻找和谐)· .NET 匿名方法的BUG,请专家解答(王富贵)· 关于大型网站技术演进的思考(六)--存储的瓶颈(6)(夏天的森林)· [PaPaPa][需求说明书][V1.0](今晚打老虎.)· 你凌晨1

谈谈Android重打包--架构

写在前面的话 写了这么多章的废话,今天终于开始可以算进入主题了.当然了,之后的故事发展也是我个人觉得比较激动人心的部分.因为,我们今天开始讲解的部分是架构部分. 从今以后你需要准备的东西就是你的大脑,恩,感觉说道跟动脑有关的时候有的人就会觉得好痛苦.放心把,我会尽力写的只要脑袋在头上都能看的懂的. 申明 此文章请勿转载,谢谢合作 系统架构 在这里我们说了,将会使用资源来判断Android是不是存在重打包的现象.在这一章我们将会说说这个系统的架构. 我们说过,之前有人是这么处理重打包问题,当然了,

百度editor富文本编辑器在火狐浏览器中的兼容性

最近做项目的时候遇到了百度的一个神器:editor富文本编辑器.但是也遇到了很多兼容性的问题,现在写一段随笔一起分享一下: 第一:在火狐浏览器中,该编辑器部分的编辑功能按钮不能显示 可以看出,在火狐浏览器中只会显示编辑框,而上面的编辑按钮缺没有.(但是在IE7,IE8上不能显示的原因在于新版本中屏蔽了 anonymous()方法,可以通过修改eWebEditor的JS文件来修正错误) 解决方案:打开火狐-->工具栏-->“工具”-->"添加附件",使用搜索功能来搜索“

浏览器加载、解析、渲染的过程

最近在学习性能优化,学习了雅虎军规 ,可是觉着有点云里雾里的,因为里面有些东西虽然自己也一直在使用,但是感觉不太明白所以然,比如减少DNS查询,css和js文件的顺序.所以就花了时间去了解浏览器的工作,有一篇经典的文章<how browsers work> ,讲的很详细,也有中文译本 .不过就是文章有点太长,也讲了一堆东西,还是自己总结一下. 为什么要了解浏览器加载.解析.渲染这个过程? 好,我们先说一下,为什么要了解这些呢?如果想写出一个最佳实践的页面,就要好好了解. 了解浏览器如何进行加载

浏览器的解析和执行过程

当浏览器获得一个html文件时,会"自上而下"加载,并在加载过程中进行解析渲染. 解析: 1. 浏览器会将HTML解析成一个DOM树(display:none,visibility:hidden).DOM 树的构建过程是一个深度遍历过程:当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点. 2. 将CSS解析成 CSS Rule Tree . 3. 根据DOM树和CSSOM来构造 Rendering Tree( visibility:hidden ). 4.有了Rende

网页在浏览器上的渲染过程

最近在学习性能优化,学习了雅虎军规 ,可是觉着有点云里雾里的,因为里面有些东西虽然自己也一直在使用,但是感觉不太明白所以然,比如减少DNS查询,css和js文件的顺序.所以就花了时间去了解浏览器的工作,有一篇经典的文章<how browsers work> ,讲的很详细,也有中文译本 .不过就是文章有点太长,也讲了一堆东西,还是自己总结一下. 为什么要了解浏览器加载.解析.渲染这个过程? 好,我们先说一下,为什么要了解这些呢?如果想写出一个最佳实践的页面,就要好好了解. 了解浏览器如何进行加载