js文字内容部分选中的代码封装
var textSelect = function(o, a, b){
    //o是当前对象,例如文本域对象
    //a是起始位置,b是终点位置
    var a = parseInt(a, 10), b = parseInt(b, 10);
    var l = o.value.length;
    if(l){
        //如果非数值,则表示从起始位置选择到结束位置
        if(!a){
            a = 0;
        }
        if(!b){
            b = l;
        }
        //如果值超过长度,则就是当前对象值的长度
        if(a > l){
            a = l;
        }
        if(b > l){
            b = l;
        }
        //如果为负值,则与长度值相加
        if(a < 0){
            a = l + a;
        }
        if(b < 0){
            b = l + b;
        }
        if(o.createTextRange){//IE浏览器
            var range = o.createTextRange();
            range.moveStart("character",-l);
            range.moveEnd("character",-l);
            range.moveStart("character", a);
            range.moveEnd("character",b);
            range.select();
        }else{
            o.setSelectionRange(a, b);
            o.focus();
        }
    }
};
//实例
例如,执行textSelect(obj, 10 30)就意味着对名为obj的DOM对象值中的第10个到第30个字符进行选中。
<textarea id="t" style="width:500px; height:100px;">麦当劳wifi热点的账号密码及连接设置(全国通用)。麦当劳的免费热点是隐藏wifi,需要手动添加才行。 麦当劳的wifi账号:McDonald-OC wifi密码:Ac28Idfjla92ifjsl3jsHdowIo</textarea>
<p>输入起始值:<input type="text" id="a" /> 输入结束值:<input type="text" id="b" /></p>
<p><button id="btn">执行</button></p>
var $ = function(id){
	return document.getElementById(id);
};
$("btn").onclick = function(){
	var a = $("a").value;
	var b = $("b").value;
	textSelect($("t"), a, b);
};												
											js文字内容部分选中的代码封装的更多相关文章
- js复制内容加版权声明代码
		$("body").on('copy', function (e) { if (typeof window.getSelection == "undefined" ... 
- [转载]js复制内容加版权声明代码
		转自:https://www.cnblogs.com/zdz8207/p/js-oncopy.html var ua = navigator.userAgent.toLowerCase(); if( ... 
- 如何将Js代码封装成Jquery插件
		很多相同的Jquery代码会在很多页面使用,每次都复制粘贴太麻烦了,不如封装成一个Jquery插件就方便了,至于影响网页的速度不,我就没有测试了哈. 代码如下 这是一个自定闪烁打印文字的Jquery特 ... 
- JS 阻止整个网页的内容被选中
		pretty-girl { -webkit-user-select: none; } 可是!可是!不是每个浏览器都可以不忧桑!!!那就只能请脚本大王出山了. 阻止选中 有时候,我们需要禁止用户选中一些 ... 
- 原生JS实现旋转轮播图+文字内容切换
		废话不多说,直接上图看效果: 需求:点击左右按钮实现切换用户图片与信息: 原理:点击右侧左侧按钮,把3号的样式给2号,2号的给1号,1号的给5号,5号的给4号,4号的样式给3号,然后根据现在是第几张图 ... 
- 电力项目七--js控制文字内容过长的显示和文本字数的显示
		当文本框中文字内容过长时,需要调整显示的样式 如上图所示的样式 对应的代码为: <div id="showInfomation" style="visibility ... 
- js文字向上滚动代码
		js文字向上滚动代码 <style>.pczt_pingfen_jhxs_news1{ width:397px; background:#edfafd; padding-top:2px; ... 
- js复制内容到剪贴板
		我们web上的复制,有时候尽管可以用鼠标选中,然后复制,但是某些时候,文字不方便选中.因此,我们自定义一个复制按钮,然后通过点击它,把想要的内容复制到剪贴板上.我归纳总结了几种方法: 1.ZeroCl ... 
- white-space norma nowrap强制同一行内显示所有文本文字,让所有文字内容中一排显示不换行
		日常我们为了让文字内容在一行内显示完,哪怕宽度不够也不能换行,我们可以使用white-space样式,但如果遇到了html br强制换行标签,无论是设置white-space与否都会被<br&g ... 
随机推荐
- Identity 更改密码的几种方式
			1.先使用UserManager.RemovePassword(UserID),清空密码,再使用UserMnager.AddPassword(UserId,newPassword)增加新密码. [Ht ... 
- [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
			您可以查看 App 的总评分或单个顾客评论.如有必要,您可以针对某条评论报告问题. [注]顾客可以为您的 iOS 和 macOS App 评分并撰写评论,但只能为 Apple TVOS App 评分. ... 
- Luogu P1280 Niko的任务【线性dp】By cellur925
			Nikonikoni~~ 题目传送门 这是当时学长讲dp的第一道例题,我还上去献了个丑,然鹅学长讲的方法我似董非董(??? 我当时说的怎么设计这道题的状态,但是好像说的是二维,本题数据范围均在1000 ... 
- SSM-避坑记(一)
			在运行测试类的时候的报错,内容如下 报错: class path resource [spring/spring-search.xml] cannot be opened because it doe ... 
- 针对IE浏览器里面CSS的Bug解决方法
			IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况.如外边距设置为10px, 而左侧则呈现出20px,解决它的方法是 ... 
- 题解报告:hdu 1171 Big Event in HDU(多重背包)
			Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ... 
- 备份字段(CATALOGUE_CODE)
			update am_e4_entry set CATALOGUE_CODE_back=CATALOGUE_CODE; 还原字段 update am_e4_entry a set CATALOGUE_C ... 
- TC 609DIV2(950)
			Problem Statement Vocaloids Gumi, Ia, and Mayu love singing. They decided to make an album comp ... 
- 简单工厂模式-Java篇
			简单工厂模式就是考虑如何实例化对象的问题,就是说到底要实例化谁,将来会不会增加实例化对象,比如计算器类中增加开根元素,应该考虑用一个单独的类来创造实例的过程,这就是工厂.下面将利用计算器类举例,解释简 ... 
- Android学习笔记(七) 布局基础
			一.概念 控件布局方法,就是指控制控件在Activity当中的位置.大小.颜色以及其他控件样式属性的方法.有两种方法可以控制布局: 在布局文件(xxx.xml)中完成控件的布局. 在JAVA代码中完成 ... 
