`

textarea<一>

    博客分类:
  • js
阅读更多

如果只需要完成简单的功能。而不愿使用庞大的插件,不妨自己制作简单的在线文本编辑器

首先,制作之前,要明白几个概念

 

1。  获得鼠标选择的值:ie和ff下略有不同

IE:

  var sel = document.selection.createRange(); 
  alert(sel.text );

 

FF:获得光标选择域的起始位置,终止位置,调用 subString(indexNum,endNum) 方法,来获得所选择的文本

      

  

 

 var element = document.getElementsByTagName(textarea)[0];
 var indexNum = element.selectionStart; //光标开始位置
 var endNum = element.selectionEnd;//光标结束位置
 var selText = element.value.substring(indexNum,endNum);//调用subString方法,获得选择文本的值
    alert('indexNum='+indexNum+"====endNum="+endNum+"===selText="+selText);

   由于document.selection在ff下不支持,所有利用这个属性来判断浏览器,以上ie和ff下的代码进行合并,最后的代码

function getSelText() {
var selText ;
//ie
 if(document.selection!=null){
      var sel = document.selection.createRange(); 
       selText=sel.text;
 }
 //ff
 else{
    var element = document.getElementsByTagName(textarea)[0];
    var indexNum = element.selectionStart; //光标开始位置
    var endNum = element.selectionEnd;//光标结束位置
     selText = element.value.substring(indexNum,endNum);
   
 }
            return selText;
 
      
   }

 2.关于textarea下的文字换行

html文本中,默认回车换行字符为 \n.调用replace方法,将\n替换为html标记 <br/>

 

   /**获得textarea中的内容(代码格式)*/
   function getContext(){
          var element = document.getElementsByTagName(textarea)[0];
          var context=element.value.replace(/(\n)/g,"<br/>");

             return context;
   }

 题外话:

如果用户输入时不使用回车换行,textarea会自动换行,在输入时看起来是换行了的。但是进入后台存储的时候,由于没有换行符<br/>,将输入的内容在从后台提取出来的时候,显示就回出现混乱。这个可以使用css进行控制换行控制

 <div style="white-space: normal;width: 100%;word-break:break-all; overflow:auto;">

这种代码在ie下。超出指定宽度,自动换行,ff下位超出指定宽度后,以滚动条显示

3。关于textarea在宽度在ie和ff下宽度差异问题:

这里不具体讨论,je或网上有很多这样的文章,这里的解决方案是使用 style样式height=?px和width=?px属性进行定义,而不是使用textarea的属性cols,rows

下面是一个初始化textarea样式的方法

   /**
   *定制textarea的样式
   * json字符串style={height:num,width:num}
   *例 : var style={height:120,width:120}; this.setStyle(style);
   */
   function setStyle(style){
    
               var element = document.getElementsByTagName(textarea)[0];
               element.style.height=style.height;
                element.style.width=style.width;

   }

 

  

 

 

 

 

分享到:
评论

相关推荐

    HTML里面Textarea换行问题总结

    问题解决1: 一开始是提交数据的时候格式是AAA&lt;BR&gt;BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...

    textarea换行符

    &lt;textarea id="textarea"&gt;&lt;/textarea&gt; &lt;script&gt; var str = document.getElementById("textarea").value; str = str.replace(/\r\n/g, "&lt;br&gt;"); document.getElementById("textarea").value = str; &lt;/script&gt; ```...

    【JavaScript源代码】为网站代码块pre标签增加一个复制代码按钮代码.docx

    它创建一个临时的`&lt;textarea&gt;`元素,将`&lt;pre&gt;`内容放入其中,选中该内容,然后调用`document.execCommand("Copy")`命令复制文本。复制成功后,更新按钮的文字提示,并在一段时间后恢复原始文字。 ```javascript $...

    js监听鼠标事件控制textarea输入字符串的个数.docx

    "&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;您还可以输入:&lt;input name="remLen" type="text" value="65" size="5" readonly="readonly" /&gt;个字符,每条短信最大允许输入 &lt;strong&gt;65&lt;/strong&gt; 个字符&lt;/td&gt; &lt;/...

    实验考试一.doc

    &lt;tr&gt;&lt;td&gt;备注:&lt;/td&gt;&lt;td&gt;&lt;s:textarea name="xs.bz" label="备注"&gt;&lt;/s:textarea&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;s:submit value="添加"&gt;&lt;/s:submit&gt;&lt;/td&gt;&lt;td&gt;&lt;s:reset value="重置"&gt;&lt;/s:reset&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;/s:form...

    统计字数的textarea

    在这个例子中,我们创建了一个textarea和一个用于显示字数的`&lt;p&gt;`元素。通过`addEventListener`方法添加了一个事件监听器,每当textarea内容改变时,都会更新字数计数并显示在页面上。 如果要限制最大字数,可以在...

    JSP获取TextArea中的值

    &lt;textarea name="userInput"&gt;&lt;/textarea&gt; &lt;input type="submit" value="提交"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; ``` 在处理表单的JSP页面(如`process.jsp`),我们可以这样获取TextArea的值: ```jsp &lt;%@ page ...

    HTML知识点总结(一)共2页.pdf.zip

    9. **表单**:HTML表单元素如`&lt;form&gt;`、`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;select&gt;`和`&lt;button&gt;`用于用户输入和交互。 10. **响应式设计**:通过使用媒体查询(`@media`)和Flexbox或Grid布局,可以创建适应不同设备屏幕...

    利用HTML实现一个个人信息表的网页整理.docx

    相反,块级元素,如`&lt;p&gt;`, `&lt;h1&gt;`-`&lt;h6&gt;`, `&lt;div&gt;`, `&lt;hr&gt;`, `&lt;pre&gt;`, `&lt;ul&gt;`, `&lt;ol&gt;`, `&lt;dd&gt;`, `&lt;dt&gt;`, `&lt;th&gt;`, `&lt;tr&gt;`, `&lt;td&gt;`,它们会自动在页面上占据一整行,可以包含其他块级元素或行内元素。例如,`&lt;p&gt;`用于...

    Web程序的设计基础实验报告.docx

    `&lt;b&gt;`和`&lt;i&gt;`用于加粗和斜体,`&lt;font&gt;`控制文字颜色和大小,`&lt;marquee&gt;`实现滚动文字,`&lt;hr&gt;`添加水平线,`&lt;ul&gt;`和`&lt;li&gt;`创建无序列表,`&lt;a&gt;`定义超链接,`&lt;table&gt;`创建表格,`&lt;input&gt;`、`&lt;textarea&gt;`和`&lt;select&gt;`...

    it网页制作

    此外,还有许多其他标签,如`&lt;form&gt;`用于创建表单,`&lt;input&gt;`定义输入控件,`&lt;button&gt;`定义按钮,`&lt;label&gt;`定义输入控件的标注,`&lt;select&gt;`和`&lt;option&gt;`用于创建下拉列表,`&lt;textarea&gt;`定义多行文本输入等。...

    使用HTML开发商业网站-表单控件-textarea课件.pptx

    在众多的表单元素中,`&lt;textarea&gt;` 控件扮演着重要的角色,它允许用户输入多行文本,例如用于评论、留言或者填写长篇文章。在本课件中,我们将深入探讨`&lt;textarea&gt;`的基本用法和一些高级特性。 ### `&lt;textarea&gt;` ...

    网页设计 关于网页设计的技巧 简易入门

    `&lt;body&gt;`标签内的元素如段落(&lt;p&gt;)、标题(&lt;h1&gt;至&lt;h6&gt;)、链接(&lt;a&gt;)、列表(&lt;ul&gt;, &lt;ol&gt;, &lt;li&gt;)、图像(&lt;img&gt;)、表格(&lt;table&gt;)、框架(&lt;frameset&gt;, &lt;frame&gt;)和表单(&lt;form&gt;, &lt;input&gt;, &lt;textarea&gt;, &lt;button&gt;)...

    html知识

    `&lt;textarea&gt;` 标签用于定义一个多行文本输入框,适合于用户输入大量的文本信息,例如评论、反馈或文章撰写。默认情况下,文本框内文字的字体样式为等宽字体,如`Courier`。 **属性详解:** - **cols**: 规定文本...

    javascirpt 在textarea中运行(自己学习)

    在给定的“test.html”文件中,很可能包含了一个`&lt;textarea&gt;`元素,用于输入JavaScript代码,并有一个按钮或事件监听器来触发代码的执行。这是通过`eval()`函数来实现的,`eval()`可以解析并执行字符串形式的...

    HTML02表格和表单.ppt

    &lt;TH ALIGN=CENTER COLSPAN=3&gt; 第一季度 &lt;/TH&gt; &lt;TH ALIGN=CENTER COLSPAN=3&gt; 第二季度 &lt;/TH&gt; &lt;TR&gt; &lt;TD&gt; 一月 &lt;/TD&gt; &lt;TD&gt; 二月 &lt;/TD&gt; &lt;TD&gt; 三月 &lt;/TD&gt; &lt;TD&gt; 四月 &lt;/TD&gt; &lt;TD&gt; 五月 &lt;/TD&gt; &lt;TD&gt; 六月 &lt;/TD&gt; &lt;/...

    HTML常用标签.pdf

    31. &lt;option&gt;:&lt;option&gt; 元素定义下拉列表中的一个选项(一个条目)。option 元素位于&lt;select&gt;元素内部。 32. &lt;textarea&gt;:&lt;textarea&gt; 标签定义多行的文本输入控件。可以通过 cols 和 rows 属性来规定 textarea 的...

    html学习笔记

    `&lt;form&gt;`元素用于创建表单,`&lt;input&gt;`、`&lt;select&gt;`和`&lt;textarea&gt;`等标签定义不同的输入控件。 总之,HTML是构建网页的基础,通过组合使用各种标签和属性,可以创建出丰富的网页内容。学习HTML有助于理解网页的工作...

    标签.docx

    &lt;dt&gt;术语一&lt;/dt&gt; &lt;dd&gt;术语一解释 1&lt;/dd&gt; &lt;dd&gt;术语一解释 2&lt;/dd&gt; &lt;dt&gt;术语二&lt;/dt&gt; &lt;dd&gt;术语二解释&lt;/dd&gt; &lt;/dl&gt; ``` ### 表单标签 表单 (`&lt;form&gt;`) 是 Web 应用程序中非常重要的组成部分,用于收集用户输入的...

    前端重点知识点总结 前端超详细教程攻略学习.docx

    - 表单元素:熟悉`&lt;input&gt;`, `&lt;select&gt;`, `&lt;textarea&gt;`等表单元素的使用。 - 语义化标签:了解并使用`&lt;header&gt;`, `&lt;footer&gt;`, `&lt;article&gt;`, `&lt;section&gt;`等语义化标签以提高页面的可访问性。 2. CSS基础 - 选择器...

Global site tag (gtag.js) - Google Analytics