<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>在一个可编辑的div光标处插入图片或者文本</title>
</head>

<body>
<div style="width:500px; margin:20px auto; height:200px; border:1px solid red" contenteditable="true" id="reditor"></div>
<button  id="contenteditable">插入图片</button>
</body>
</html>
<script>

window.onload=function(){    
        
        document.getElementById("contenteditable").onclick=function(){    
            Manager.insertImg();

};
}

var Manager = {
            insertHtml:function(html,type){
            
            var lastMemo=document.getElementById("memo"),lastEditor=document.getElementById("reditor");

type=type||'memo';

var control=type=='memo'?lastMemo:lastEditor;

if(!control)return;

control.focus();

var selection=window.getSelection?window.getSelection():document.selection,

range=selection.createRange?selection.createRange():selection.getRangeAt(0);

//判断浏览器是ie,但不是ie9以上
            var browser = checkBrowser().split(":");
            var IEbrowser = checkBrowser().split(":")[0];
            var IEverson =  Number(checkBrowser().split(":")[1]);
            
            if(IEbrowser=="IE"&&IEverson<9){

range.pasteHTML(html);

}else{

var node=document.createElement('span');

node.innerHTML=html;

range.insertNode(node);

selection.addRange(range);

}

},

insertImg:function(){
                var img="<img src='http://www.baidu.com/img/bdlogo.gif'/>";
                this.insertHtml(img,'editor');
        }

}

function checkBrowser()
{
 var browserName=navigator.userAgent.toLowerCase();
 //var ua = navigator.userAgent.toLowerCase();
 var Sys = {};
 var rtn = false;
 
    if(/msie/i.test(browserName) && !/opera/.test(browserName)){
        strBrowser = "IE: "+browserName.match(/msie ([\d.]+)/)[1];
  rtn = true;
        //return true;
    }else if(/firefox/i.test(browserName)){
        strBrowser = "Firefox: " + browserName.match(/firefox\/([\d.]+)/)[1];;
        //return false;
    }else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){
        strBrowser = "Chrome: " + browserName.match(/chrome\/([\d.]+)/)[1];
        //return false;
    }else if(/opera/i.test(browserName)){
        strBrowser = "Opera: " + browserName.match(/opera.([\d.]+)/)[1];
        //return false;
    }else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){
        strBrowser = "Safari: ";
        //return false;
    }else{
        strBrowser = "unKnow,未知浏览器 ";
  //return false;
    }
 strBrowser = strBrowser ;
 //alert(strBrowser)
 return strBrowser;
}

</script>

js在一个可编辑的div光标处插入图片或者文本(兼容ie,火狐等浏览器)的更多相关文章

  1. 可编辑DIV (contenteditable="true") 在鼠标光标处插入图片或者文字

    近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下.写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定. 蛋疼的事情 ...

  2. js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)

    js: /******************************************* * * 插入光标处的插件 * @authors Du xin li * @update    2015 ...

  3. div 光标处插入内容

    var Manager = { insertHtml: function(html, type) { var lastMemo = document.getElementById("memo ...

  4. 使用JS在textarea在光标处插入内容

    // 在光标处插入字符串 // myField 文本框对象 // myValue 要插入的值 function insertAtCursor(myField, myValue) { //IE supp ...

  5. JQ在光标处插入文字

    内容转载自网络这是一个JQ的扩展方法.在teatarea获得焦点时,往光标处插入文字,扩展代码如下 (function($){ $.fn.extend({ "insert":fun ...

  6. js在光标处插入内容

    //场景一 简易的页面可以这样写var range = window.getSelection().getRangeAt(0);range.insertNode(document.createText ...

  7. kindeditor在光标处插入编辑器外的数据

    页面 <div class="form-group clearfix"> <label class="control-label col-sm-3 co ...

  8. textarea光标处插入文字

    (function($) { $.fn.extend({ //myField 对象元素 myValue 插入值 insertAtCursor: function(myField,myValue) { ...

  9. JS在可编辑的div中的光标位置插入内容或表情

    <input type="button" value="插入字符" onclick="document.getElementById('test ...

随机推荐

  1. Java读取文件整理

    /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public class ReadFromFile { public static void readFileB ...

  2. ftpclient 编码备忘

    if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {// ...

  3. eclipse svn插件

      eclipse svn插件 CreateTime--2018年4月22日23:09:42 Author:Marydon 下载地址:eclipse svn插件 将svn插件目录直接拷贝到eclips ...

  4. 推荐10 款 SVG 动画的 JavaScript 库

    SVG 通常可以用作跨分辨率视频.这意味着在一块高分屏幕上不会降低图片的锐度.此外,你甚至可以让SVG动起来,通过使用一些javascript类库.下面,我们分享一些javascript类库,这些类库 ...

  5. hduoj---Tempter of the Bone

    Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  6. MNIST数据集和IDX文件格式

    MNIST数据集 MNIST数据集是Yan Lecun整理出来的. NIST是美国国家标准与技术研究院(National Institute of Standards and Technology)的 ...

  7. 转 生成 HTMLTestRunner 测试报告

    转自:http://www.cnblogs.com/hero-blog/p/4128575.html 04.生成 HTMLTestRunner  测试报告   1.HTMLTestRunner 是 P ...

  8. Android 判断SD卡是否存在及容量查询

    Android 判断SD卡是否存在及容量查询的简单方法如下: 首先要在AndroidManifest.xml中增加SD卡访问权限 <!-- 在SDCard中创建与删除文件权限 --> &l ...

  9. 如何根据Ip获取地址信息--Java----待整理完善!!!

    如何根据Ip获取地址信息--Java----待整理完善!!! QQWry.dat数据写入方法: http://www.cnblogs.com/xumingxiang/archive/2013/02/1 ...

  10. 北风网VIP6级学习视频地址

    账号密码是我的QQ http://www.爱北风.com/vip6.php