需求:利用highlight.js对文本框中的内容进行高亮显示

1.highlight.js使用

js中:<script src="js/highlight/highlight.pack.js"></script>

  <script type="text/javascript">

    hljs.initHighlightingOnLoad();//SQL高亮显示

    $(document).ready(function() {

      $("pre code").each(function(i, block) {

        hljs.highlightBlock(block);

      });

    });

  </script>

html中:<pre> <code class="lang-javascript"> 内容</code> </pre>

2.highlight.js应用于<textarea>无效,因而用 div模拟文本框textarea

无效示例:<pre>

       <code>

          <textarea id="sql" rows="14" cols="80" name="sqlStatement">

            <s:property value="udq.sqlStatement"/>

          </textarea>
                        </code>

     </pre>

有效div模拟文本框:<div id="sql"  contenteditable placeholder="请输入文字">

           <pre>

            <code>

              <s:property value="udq.sqlStatement"/>

            </code>

           </pre>
                          </div>

对于<pre><code>中的内容不随div的宽度换行问题,应用css样式:

  white-space: pre-wrap;
  word-wrap: break-word;

其中:介绍下HTML5里contenteditable属性:(参考https://w3c.github.io/editing/contentEditable.html#contenteditable

它主要的属性值有:

  1. contenteditable="inherit"
  2. contenteditable=""
  3. contenteditable="events"
  4. contenteditable="caret"
  5. contenteditable="typing"
  6. contenteditable="plaintext-only"
  7. contenteditable="true"
  8. contenteditable="false"

其实在模拟文本框时,常用的就是"plaintext-only"、"true","plaintext-only"可以实现可以让编辑区域只能键入纯文本

其实css中有一个属性(user-modify)也能实现让元素内只能输入纯文本,但是由于目前好像只有webkit内核支持(-webkit-),所以效果没上面好。

div模拟文本框textarea的更多相关文章

  1. easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

    先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...

  2. 禁止多行文本框textarea拖拽

    禁止多行文本框textarea拖拽: textarea { resize: none; } resize这个是用于元素缩放,它可以取以下几个值: none 默认值 both 允许水平方向及垂直方向缩放 ...

  3. CodeMirror编辑器文本框Textarea代码高亮插件,CodeMirror的简单实用例子

    CodeMirror是一个用于编辑器文本框textarea代码高亮javascript插件,为各种编程语言实现关键字,函数,变量等代码高亮显示,丰富的api和可扩展功能以及多个主题样式,能满足您各种项 ...

  4. 【CSS】隐藏多行文本框Textarea在IE中的垂直滚动栏

    在<[CSS]禁止Google浏览器同意定义调整多行文本框>(点击打开链接)中已经提及过怎样使多行文本框Textarea在一些DOM2的浏览器中固定下来. 这不,多行文本框Textarea ...

  5. JS控制文本框textarea输入字数限制

    <html> <head> <title>JS限制Textarea文本域字符个数</title> <meta http-equiv="C ...

  6. jquery文本框textarea自适应高度

    浏览器中默认的文本框是不能根据内容的增多变高,只能固定高度有滚动条,体验不是很好,找了很多方法兼容都不行,总算找到个兼容良好的方法: <body> <textarea id=&quo ...

  7. HTML中的文本框textarea标签

    转自:https://www.jb51.net/web/183411.html <textarea></textarea>用来创建一个可以输入多行的文本框,此标志对用于< ...

  8. 隐藏div,文本框角圆滑,消除外边框

    #div_1 /*将div设置完成,并且隐藏,当需要的时候对其属性值进行修改*/ { height: 36px; width: 1099px; background-color: #F0DFDF; m ...

  9. 文本框 textarea 动态显示行数(简单文本编辑器)

    工作需求做一个文本编辑器简单的. 右边输入文字,左边会显示相应的代码行.清空也会变为1. 废话不多说上代码,自己理解. <style type="text/css"> ...

随机推荐

  1. 游戏引擎——cocos2d-x

    Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的.这是一个C++ Cocos2d-iPhone项目的版本.Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x ...

  2. 【编程基础】C语言常见宏定义

    我们在使用C语言编写程序的时候,常常会使用到宏定义以及宏编译指令,有的可能比较常用,有的可能并不是很常用,是不是所有的C语言宏定义以及宏指令你都清楚呢? 指令 用途详细介绍 # 空指令,无任何效果 # ...

  3. 记自己利用hexo和github搭建个人博客的过程

    --------------------------------------可能我书写的方式跟别人顺序不一样,但这是我的成功经验------------------------------------ ...

  4. 随手记一 2018/04/23 session和cookie的区别

    1.cookie存放在客户端的浏览器上,session存放在服务器上 2.cookie安全性不高,可以通过分析存放在本地的cookie并且进行cookie欺骗 3.session会在一定时间内保存在服 ...

  5. C++ STL标准容器插入删除算法的复杂度

    1 vector内部实现: 数组 // 就是没有固定大小的数组,vector直接翻译是向量的意思支持操作:begin(), //取首个元素,返回一个iteratorend(), //取末尾(最后一个元 ...

  6. es6中promise实现ajax的例子

    function getData(url){ var pro = new Promise(function(resolve,reject){ var xhr = null; try{ xhr = ne ...

  7. Java笔试

    异常 Throwable是Java错误处理的父类,有两个子类:Error和Exception. Error:无法预期的严重错误,导致JVM虚拟机无法继续执行,几乎无法恢复捕捉的 Exception:可 ...

  8. dt转换List CovertListHelper

    public class CovertListHelper { //传递过来的类型必须与数据库类型保持一致问题 public List<T> convertToList<T>( ...

  9. JS高程12.2.3元素大小的学习笔记

    <JavaScript高级程序设计>中讲述了通过JS如何控制页面中元素的大小,其中涉及到三对属性:偏移量,客户区大小,滚动大小.以前自己经常看到这三对属性,但是具体不是很清楚,容易混淆.所 ...

  10. Java 连接 MySQL 数据库

    最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...