因为不同的浏览器,其【JS】代码也有所不同,【IE】、【Firefox】、【Opera】等就是这样,所以B/S架构的软件能把人逼疯了!(注意:“遨游”等其实根本就不算是浏览器,因为它们基本上都是基于【IE】的内核,所以直接忽略不考虑。)
先从【Firefox】开,因为本人的【Firefox】中安装了【Firebug】这个插件,所以,对网页中的任何控件和脚本代码都可以控制的游刃有余。调试【JS】代码也比较方便,很快就找到了那两个关键的属性“selectStart”和“selectEnd”。【Firefox】的问题解决了。
然后是【IE】,这是最气人的,“selectStart”和“selectEnd”属性【IE】根本就不认!都快弄吐血了都没解决这个问题!算了,还是先看看【Opera】吧,用【Firefox】中调试成功的代码在【Opera】中跑,结果,没有问题,直接通过。原因可能是【Firefox】和【Opera】对W3C的标准支持的相对好一些。(你看看,恩!不得不骂比尔,这老不死的东西就是让人头疼,自从在自己的叫“窗口”的小软件——就是【Windows】集成了那个蛮横的【IE】,就一意孤行,不听组织上的话,自己单干,非得制定自己的标准,怪不得比尔是纯美国种呢,跟美国一样,都是那么霸道。。。。。。跑~~~~~~提了,汗。。。)
没办法,只好回来接着捣鼓这个没缝的鸡蛋——【IE】,无奈啊,只好在网上继续搜索!可惜搜所结果同样是——零!真没办法了,还是从【Firebug】中找突破口吧。
【Firebug】中列出了空间的所有属性及方法,排除那些知道的就开始一个一个的在网上查,最后查到了“createRange”这个方法,终于解决了【IE】这个臭鸡蛋。以下给出源代码。
[code]
//获取控件
var obj = document.getElementById('editorInput');
//获取控件的值
var message = obj.value;
//根据浏览器选择处理方法
if(is_moz||is_opera)
{
//如果是【Firefox】和【Opera】走这里
//获取选择文本的起始点
var selStart = obj.selectionStart;
//获取选择文本的长度
var selLen = obj.selectionEnd - obj.selectionStart;
//获取被选择的文本
var sel=message.substr(selStart,selLen);
}
else
{
//如果是【IE】走这里
//获取被选择的文本
var sel=document.selection.createRange().text;
//获取选择文本的长度
var selLen = sel.length;
//获取选择文本的起始点
var selStart = message.search(sel);
}
[/code]
好啦,代码都在这里了,本人在【IE】、【Firefox】和【Opera】三款浏览器中测试通过,其他非IE内核的浏览器没有测试过,所以不好下定论。
分享到:
相关推荐
javascript获取选中文本的测试脚本,选中文本时产生一个按钮,点击按钮显示文本内容
原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: 978-0596805524 发行时间: 2011年05月...
【标题】"Milkyway-Cloze:用任何文本练习完形填空_JavaScript_.zip" 提供的是一款基于JavaScript开发的完形填空练习工具。这个项目名为"Milkyway-Cloze",其核心功能是允许用户利用自定义的文本创建个性化的完形...
**标题解析:** "js选取获取文本库" 这个标题暗示了我们主要讨论的是JavaScript中用于选取和操作文本的库。在Web开发中,文本选取通常涉及到用户在页面上选择文字的操作,而文本库则可能提供了一系列方便开发者进行...
JavaScript 富文本框是一种网页开发中的重要元素,它允许用户在网页上进行格式化文本输入,比如编辑文章、填写表单等。相比简单的文本输入框,富文本框提供了更多的功能,如字体选择、字号调整、颜色设置、插入图片...
例如,使用`document.getElementById()`、`document.querySelector()`或`document.createElement()`等方法来获取或创建DOM节点,然后用`innerHTML`或`innerText`属性修改文本内容。 3. **事件监听与处理**: 编辑...
- **第3行**:获取当前文本的长度。 - **第5-7行**:判断用户输入的是不是数字键或空格键。如果不是,则允许输入。 - **第9-12行**:如果文本长度已超过160个字符,则阻止此次输入;否则允许输入。 ##### 3. 应用...
1. 使用JavaScript编程对文本文档进行格式化处理,可以将文本文档中的断行、行首缩进、空行分隔等问题解决,实现了文本文档的自动格式化处理。 2. 使用JavaScript编程可以将文本文档中的断行合并,避免了繁琐的手工...
JavaScript文本转语音
在JavaScript中,字符串是基本的数据类型之一,它们用于表示文本信息。然而,JavaScript中的字符串长度并不等同于字节长度,因为JavaScript字符串是基于Unicode编码的,每个字符可能占用1到4个字节不等。这与一些...
JavaScript是Web前端开发的核心语言之一,它在网页交互、数据处理和动态效果实现等方面发挥着重要作用。本手册将深入探讨JavaScript中的字符串,这是编程中常用的数据类型,对于理解和操作文本至关重要。 一、字符...
【imgToText:获取图像并将其转换为JavaScript中的可缩放文本】 在现代网页开发中,将图像转换为文本有着多种用途,例如增加可访问性、优化SEO或创建独特的动态设计效果。`imgToText`项目就是这样一个工具,它允许...
富文本编辑器是网页开发中常见的一种工具,它允许用户在网页上进行格式化文本的输入、编辑和展示,常用于博客、论坛、CMS(内容管理系统)等应用场景。本篇文章将详细探讨如何引入富文本编辑器,以及如何从富文本中...
`str2js`的工作原理通常是将输入的纯文本进行适当的转义,以确保所有特殊字符(如双引号、反斜杠等)在JavaScript环境中能够正确解析。例如,一个包含双引号的HTML字符串`<p>"I said, "Hello"</p>`在转换后可能会...
1. 固定位置截取:这种方法通常基于起始位置和结束位置来获取字符串的一部分。例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,其中`start`是开始索引,`end`是结束索引(不包括该位置的字符)。...
需要注意的是,在IE浏览器中,如果使用非按钮元素(如`<span>`、`<div>`等)触发`onclick`事件,可能会导致整个页面的选择内容发生变化,从而导致获取选中文本的操作失败。这种情况下,建议使用按钮元素来触发获取...
在这个"10行 JavaScript 实现文本编辑器"的主题中,我们将探讨如何利用简单的JavaScript代码创建一个基本的文本编辑器。 首先,我们需要理解JavaScript的基本语法和DOM(Document Object Model)操作。DOM是HTML或...
JavaScript富文本框是一种在网页上实现用户编辑复杂文本内容的工具,它提供了比普通`<textarea>`元素更加强大的功能,比如格式化文本、插入图片、链接、表格等。在网页设计和开发中,富文本框是构建内容管理系统、...
在JavaScript编程中,获取和设置光标位置是常见的需求,特别是在与用户交互的表单元素如`<input>`和`<textarea>`中。这涉及到DOM(文档对象模型)操作和事件处理,对于创建动态和响应式的网页应用至关重要。本文将...