`
zhangchibang
  • 浏览: 349175 次
社区版块
存档分类
最新评论

Javascript:获取选取文本的起始及长度等(转)

阅读更多

因为不同的浏览器,其【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内核的浏览器没有测试过,所以不好下定论。

分享到:
评论

相关推荐

    vue结合html实时截取textarea文本

    为了实现“截取自定义文本”的功能,你可以根据需要修改`selectedText`,例如,只保留特定长度的文本,或者替换特定单词等。 在提供的`project-demo`压缩包中,应该包含了这个示例的完整代码结构,包括Vue组件文件...

    JavaScript算法题.docx

    ### JavaScript 算法知识点详解 #### 1. 快速排序 **知识点解析:** - **快速排序原理**:快速排序是一种高效的排序算法,基于分治思想。它选择一个基准值(pivot),将数组分为两部分:一部分的所有元素都比基准...

    inputCheck.rar

    当用户需要在输入框中填写信息时,有时我们希望实现一个功能:当输入框获取到焦点时,其内的文本能被自动全选,方便用户快速替换或编辑。这个功能在很多场景下都很实用,比如密码重置、搜索框等,可以提高用户体验。...

    简单的php分页代码

    5. **计算记录偏移量**:根据当前页数,计算从数据库中获取数据的起始位置。 ```php $offset=$pagesize*($page-1); ``` 6. **获取并显示数据**:使用`LIMIT`子句从`joke`表中选取指定范围内的记录,然后在HTML表格...

    php生成验证码代码

    接下来通过循环随机选取数组中的元素组成长度为5的验证码字符串`$verifyCode`。 ##### 4. 存储验证码到会话变量 ```php $_SESSION['code']=$verifyCode; ``` 这里将生成的验证码字符串存入`$_SESSION`数组,键名为`...

    jquery 字符串切割函数substring的用法说明

    如果长度超过6个字符,`substring(0, 6)`将选取前6个字符并赋值给`txt2`。如果输入的字符串长度不超过6个字符,就直接把原字符串赋值给`txt2`。 总之,`substring()`函数在JavaScript和jQuery中提供了灵活的字符串...

    D3.js实现简洁实用的动态仪表盘的示例

    D3.js是一个强大的JavaScript库,专门用于数据可视化。它允许开发者创建高度自定义的、交互式的图形,包括各种类型的图表。在本示例中,我们将探讨如何使用D3.js构建一个简洁而实用的动态仪表盘。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics