js操作输入框中选择内容兼容IE及其他主流浏览器

工作中遇到需要给输入框中选中的内容增加超链接


代码如下:

function addHref(des){
var selectedText="";
if(window.getSelection&&des != undefined){//兼容非IE浏览器,由于非IE浏览器需要给定操作的元素ID才可以获取输入元素中选中的内容,因此需要输入ID

var textField=document.getElementById(des);
var selectionStart=textField.selectionStart;
var selectionEnd=textField.selectionEnd;
if(selectionStart != undefined && selectionEnd != undefined){
selectedText=textField.value.substring(selectionStart,selectionEnd);
}
if(selectedText==""){
alert("请选择需要添加链接的文字!");
return;
}
var hyperlinks=prompt("超链接地址:","");
if(hyperlinks!=null){
var replaceString="<a href='"+hyperlinks+"' target='_blank'><b><u><font color='#686600'>" + selectedText + "</font></u></b></a>";
tmpStr=textField.value;
textField.value=tmpStr.substring(0,selectionStart)+replaceString+tmpStr.substring(selectionEnd,tmpStr.length);
}
}
else if((document.selection)&&(document.selection.type == "Text")){//IE中不需要ID
var range=document.selection.createRange();
var formerElement=range.parentElement();
if(formerElement.tagName!="TEXTAREA"){
alert("请在指定位置选择需要添加超链接的文字!");
return;
}
selectedText=range.text;
var hyperlinks=prompt("超链接地址:","");
if(hyperlinks!=null){
range.text="<a href='"+hyperlinks+"' target='_blank'><b><u><font color='#686600'>" + selectedText + "</font></u></b></a>";
}
}
else{
alert("请选择需要添加链接的文字!");
return;
}
}

(0)

相关推荐

  • Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法

    遇到的问题: laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题(safari下也有同样问题); 解决办法: 给laydate绑定id; 解决前代码: <input id="startTime" placeholder="请输入开始时间" class="laydate-icon" onClick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'

  • 关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器

    firefox 和 ie 的浏览器各自实现了input历史记录的功能,可以简化输入时的麻烦,但是,有时候弹出的下拉框会挡住页面显示内容,而且在某些情况下也不需要对input框进行记录,如号码查询的input框,用户不会对同一个号码进行多次查询,就没有必要让浏览器记录. MSIE自定义了input 的扩展属性 autocomplete,置为off即可 <input type="text" autocomplete="off" id="number&qu

  • JS中解决谷歌浏览器记住密码输入框颜色改变功能

    谷歌浏览器记住密码输入框颜色会改变,并且字体颜色会变成黑色,如图 输入框原来的样式是这样的 然而记住密码后,输入框颜色就变成了黄色,并且字体变成了黑色 这是由于谷歌浏览器的自带样式的缘故: input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { background-color: rgb(250, 255, 189); background-image: none; color: rgb(0, 0,

  • jQuery实现响应浏览器缩放大小并改变背景颜色

    /*Javascript代码片段*/ //定义一个方法:这个方法控制浏览器页面背景色的切换变化 function myfunction(){ $('body').toggleClass('bgcolor'); } //添加监控页面窗口变化的方法 $(window).resize(myfunction); //并且在页面加载时即调用 myfunction();

  • jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法

    使用jQuery获取样式中的background-color的值时发现在获取到的颜色值在IE10以下版本中是以HEX格式显示[#ffff00],而IE10,.Chrome.Firefox中则是以GRB格式显示[rgb(255,0,0)],由于需要对颜色值进行判断处理,所以需要得到统一的颜色格式,最好是HEX格式的,方便处理点.搜索了一下,从国外的一个网站上得到一段代码: 复制代码 代码如下: $.fn.getHexBackgroundColor = function() {    var rgb

  • js操作输入框中选择内容兼容IE及其他主流浏览器

    工作中遇到需要给输入框中选中的内容增加超链接 复制代码 代码如下: function addHref(des){ var selectedText=""; if(window.getSelection&&des != undefined){//兼容非IE浏览器,由于非IE浏览器需要给定操作的元素ID才可以获取输入元素中选中的内容,因此需要输入ID var textField=document.getElementById(des); var selectionStart

  • JS操作XML中DTD介绍及使用方法分析

    本文实例讲述了JS操作XML中DTD介绍及使用方法.分享给大家供大家参考,具体如下: 什么是DTD,为什么需要DTD? DTD为英文Document Type Definition,中文意思为"文档类型定义".DTD肩负着两重任务:一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码. 一个HTML文档的基本结构可分为两个主要部分: <html> <head> 头部信息 </head> <body> 可视内容 </bod

  • js操作table中tr的顺序实现上移下移一行的效果

    总体思路是在table外部加个div,修改div的innerHtml实现改变tr顺序的效果 具体思路是 获取当前要移动tr行的rowIndex,在table中删除掉,然后循环table的rows,到了目标行再直接加进去,最后把整体的html赋值给div完成效果 js代码如下 //使行向上一行 function setRowUp(obj) { if (obj.parentNode.parentNode.rowIndex != 1) { var tab = obj.parentNode.parent

  • 用JS操作FRAME中的IFRAME及其内容的实现代码

    问:想通过在地址栏输入一段JS来设置一下页面里某个FRAME中的IFRAME的URL和里面某个TEXT的值,然后点击提交按钮.注意:页面是其它网站的,不要给出一些改动页面代码的答案.具体情况如下: 主页面.htm: view plaincopy to clipboardprint? <FRAMESET border=0 frameSpacing=0 frameBorder=0 cols=*,1005,*> <FRAME src="blank.html" frameBo

  • 让多个输入框中的内容同时变化的js代码

    var input_arr = document.getElementsByName('word'); var len = input_arr.length; for(var i=0; i [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 定义和用法 onkeyup 事件会在键盘按键被松开时发生. 语法 onkeyup="SomeJavaScriptCode"参数 描述 SomeJavaScriptCode 必需.规定该事件发生时执行的 JavaScript. 支持该事件的

  • js操作输入框提示信息且响应鼠标事件

    我们经常遇到一些输入框,比如注册网站的输入框就有默认提示值,当获取鼠标焦点的时候,默认值被删除,当用户没输入东西焦点离开的时候,又恢复默认提示值.这方法用js代码实现如下: html代码: 复制代码 代码如下: <input type="text" id="email" name="email" class="txt_input" value="请输入经常使用的邮箱" onfocus="fn

  • js去除输入框中所有的空格和禁止输入空格的方法

    复制代码 代码如下: <span style="font-family: Arial, Helvetica, sans-serif;"><input type="password" name="password" id="password" onkeydown="return banInputSapce(event);" onKeyup="return inputSapceTri

  • js操作textarea方法集合封装(兼容IE,firefox)

    注意:在firefox下 添加字符串的时候有个bug 就是scrollTop 会等于0,当然解决了,但是不够完美.如果有高手也研究过,麻烦指点下. 完整测试代码: 复制代码 代码如下: <textarea id="testlujun" style="width: 300px; height: 50px;">abcdefghijklmnopqrstuvwxyz</textarea><br /><input onclick=&q

  • 浏览器检测JS代码(兼容目前各大主流浏览器)

    本文实例介绍了JS代码实现浏览器检测,分享给大家供大家参考,具体内容如下 var BrowserMatch = { init: function () { this.browser = this.getBrowser().browser || "An Unknown Browser"; this.version = this.getBrowser().version || "An Unknown Version"; this.OS = this.getOS() ||

  • JSP中用回车监听按钮事件兼容火狐 IE等主流浏览器

    复制代码 代码如下: <script> // 兼容FF document.onkeydown=keyListener; function keyListener(e){ e = e ? e : event; if(e.keyCode == 13){ onsubmit(); } } </script>

随机推荐