div设置contenteditable="true" 光标消失:原因
原因1:document.onselectstart= function(){return false;};
原因2:父层设置了user-select:none 导致 子层设置了 contenteditable 会出现异常,但是在ie和chrome并没有体现出来
如果把编辑框换成input标签不会由于禁止文本选中而出现光标消失的情况了,可以自己尝试
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding:0;}
body{position:relative;}
.call-bulk{
position: absolute;
top: 50px;
left: 0;
width:500px;
height: 100px;
background-image: url(http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170823101025wAC.png);
background-position: center bottom;
background-repeat: no-repeat;
background-size: 100% auto;
}
.call{
position: absolute;
left: 0;
bottom: 14px;
width: 100%;
height: 25px;
font-size: 18px;
line-height: 25px;
}
div[contenteditable="true"]:empty:before{
content: attr(placeholder);
color: #BAB3AF;
/*padding: 10px 0;*/
-webkit-tap-highlight-color:transparent;
-webkit-user-modify:read-write;
outline:none;
border:none;
}
</style>
</head>
<body>
<div class="call-bulk" id="call-bulk">
<div class="call" contenteditable="true" placeholder="称呼"></div>
<!-- <input type="text" class="call" placeholder="称呼"> -->
</div>
<button id="btn">换背景</button>
<script>
var imgUrl = [
'http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170825151639dY8.png',
'http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170823101025wAC.png',
'http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170825160657xsv.png',
'http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170822111147c5U.png',
'http://og0bztn1p.bkt.clouddn.com//niannianyun/uploadFiles/nn_imgs/author_img/20170825151639vlO.png'
];
var callBulk = document.getElementById('call-bulk');
var Btn = document.getElementById('btn');
var len = imgUrl.length;
Btn.onclick = function(){
var i = Math.floor(len*Math.random());//(0-1)*5 = 0-5的随机数不包括5,向下取整
// x=Math.random() 0<= x < 1
console.log(1);
console.log(i);
var bgurli = 'url('+ imgUrl[i] + ')';
callBulk.style.cssText = 'background-image:'+ bgurli;
document.onselectstart= function(){return false;};
}
</script>
</body>
</html>
div设置contenteditable="true" 光标消失:原因的更多相关文章
- div设置contentEditable="true"作为文本编辑器,定位光标解决办法
function set_focus(el) { el = el[0]; // jquery 对象转dom对象 el.focus(); if ($.browser.msie) { ...
- div设置contenteditable 的小技巧
div设置contenteditable="true",即可编辑,除从网页粘贴过来内容的格式 <div contenteditable="true" id ...
- 可编辑DIV (contenteditable="true") 在鼠标光标处插入图片或者文字
近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下.写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定. 蛋疼的事情 ...
- 解决div设置浮动,高度消失
给包围 浮动的层 加清除浮动样式,样式要兼容的用下面的代码.clearfix {*zoom:1; clear:both;}.clearfix:after{content:".";d ...
- 通过js操作,将div设置为contenteditable的内容设为全选状态
因为div设置为contenteitable可编辑的文本内容用 select()选择全部内容不生效,所以只能用下列方法: 先 creatTextRange或者 createRange <div ...
- IOS中div contenteditable=true无法输入
在IOS中<div contenteditable="true"></div>中点击时可以弹出键盘但是无法输入.加一个样式-webkit-user-sele ...
- <div>标签仿<textarea>。contentEditable=‘true’,赋予非表单标签内容可以编辑
需求:web页面需要一个文本输入框.1.该文本输入框默认状态下有个仿‘placeholder’的默认文本提示信息,2.文本框输入状态下其高度会随文本内容自动撑开. 方案选择:1.使用<texta ...
- 使用contenteditable=true的div模拟textarea(vue2.0中使用,带placeholder且高度自动撑开)
子组件: <template> <div class="item-address"> <span v-show="!hasAddress&q ...
- contenteditable="true"让div可编辑
今天才知道有这个属性,真是out了. 不过以前一直没做编辑器有关的,毕竟开源的很多. 现在觉得开源的也不是这么好用,自己写写简单的吧 用了 <div class="content-bo ...
随机推荐
- 并发编程之 ConcurrentLinkedQueue 源码剖析
前言 今天我们继续分析 java 并发包的源码,今天的主角是谁呢?ConcurrentLinkedQueue,上次我们分析了并发下 ArrayList 的替代 CopyOnWriteArrayList ...
- c++ 重载、覆盖 (隐藏)(virtual)
背景:不用说,学习C++的你,一定知道这是个词--至于难不难懂,就看你的理解能力了,我理解也是费劲千辛万苦啊,成员函数的重载.覆盖(override).隐藏.virtual 很容易混淆,C++程序员必 ...
- RabbitMQ远程不能访问问题的解决
刚刚安装的RabbitMQ-Server-3.3.5,并且也已经开启了Web管理功能,但是现在存在一个问题: 出于安全的考虑,guest这个默认的用户只能通过http://localhost:1567 ...
- Python发送短信提醒
Python发送短信可借助腾讯云平台提供的短信服务 发送短信需要的及格参数: 1.SDK_AppID和SDK_Key 2.签名: 3.模板ID 下面贴出源码DEMO: from qcloudsms_p ...
- 关于eclipse的项目前有感叹号和errors exist in required project相关问题
一般来说 项目运行中 各个类的信息中并没有报错 但在运行中会出现errors exist in required project 且有时候运行也会成功.这种情况是由于项目中其他的类存在问题未解决 导 ...
- 了解java虚拟机—串行回收器(6)
串行回收器 串行回收器只有一个工作线程,串行回收器可以在新生代和老年代使用,根据作用于不同的堆和空间,分为新生代串行回收器和老年代串行回收器. 1.新生代串行回收器 串行收集器是所有垃圾回收器中最古老 ...
- java 传入list集合 返回树形菜单,for循环遍历
public List<SysPermissionVO> getTreeMenu(List<SysPermissionVO> list,SysPermissionVO sysP ...
- Idea无法运行Maven项目
导入项目到tomcat的时候要选择Arifact 如果maven项目没有这个选项, <groupId>com.bihang</groupId> <artifactId&g ...
- POJ3616(KB12-R dp)
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9459 Accepted: 3935 De ...
- ajax分页查询
(1)先写个显示数据的页面,分页查询需要那几个部分呢? 1.首先是查询的文本框输入,还有查询按钮,那么就开始写代码吧 1 2 3 4 <div> <input type=" ...