contenteditable用于(ul标签中的onitemclick属性用来描述什么)
本文目录
- ul标签中的onitemclick属性用来描述什么
- HTML contenteditable 标签里怎样获取光标像素位置
- 在web开发里 js如何获取获取div 的contentEditable内容 用于再提交
ul标签中的onitemclick属性用来描述什么
《ul》标签支持 HTML 中的全局属性: 属性描述accesskey规定激活元素的快捷键。class规定元素的一个或多个类名(引用样式表中的类)。dir规定元素中内容的文本方向。id规定元素的唯一 id。lang规定元素内容的语言。style规定元素的行内 CSS 样式。tabindex规定元素的 tab 键次序。title规定有关元素的额外信息。 《ul》标签支持 HTML5 中的全局属性 属性描述contenteditable规定元素内容是否可。contextmenu规定元素的上下文菜单。上下文菜单在用户点击元素时显示。data-*用于存储页面或应用程序的私有定制数据。draggable规定元素是否可拖动。dropzone规定在拖动被拖动数据时是否进行复制、移动或链接。hidden规定元素仍未或不再相关。spellcheck规定是否对元素进行拼写和语法检查。translate规定是否应该翻译元素内容。
HTML contenteditable 标签里怎样获取光标像素位置
如果是 《input》 《textarea》 一类输入框, 内部纯文本, 比较好模拟.我的方案是使用相同的样式, 维护一份拷贝, 取出标签的宽度即可,复杂一些的话就在结尾加一个标签, 能从标签获取到光标的位置..
window.getSelction().getRangeAt(0).startOffset 去取位置,
sel = getSelection()document.onclick = function(event) { event.preventDefault(); range = new Range; range.selectNode(event.target); sel.removeAllRanges(); sel.addRange(range)}document.onclick = function(event) { event.preventDefault() console.log(event.target.getClientRects())}
Selection 对应的是界面上的选中内容, 而 Range 是 Selection 当中的一个选中的区域.简单的理解是, 一个 Selection 里会有多个 Range, Range 包含起始位置结束位置等等,起始未知需要知道在哪个节点, 偏移量是多少等等当然还有根据 Selection 跟 Range 用上面的位置信息来操作的 API
具体操作的代码大概要结合 StackOverflow 上具体的用例来理解的了简单的自己写一个比如, 选中点击位置...
这个两个 API 的兼容性有一些问题, 比如 new Range 会在 Safari 保存,比如 range.baseNode 在 Firefox 下不存在..为了减少兼容性造成的影响, 可以用 rangy 这个模块:https://github.com/timdown/rangy/wiki
有点答跑题了.. 后面回到重点.. 答案在 MDN 关于这两个 API 的文档当中,在 Range 的示例当中, 有试验的新 API 来提供对应的功能
https://developer.mozilla.org/en/docs/Web/API/Range
Range.getBoundingClientRect()Returns a ClientRect object which bounds the entire contents of the Range; this would be the union of all the rectangles returned by range.getClientRects().
Range.getClientRects()Returns a list of ClientRect objects that aggregates the results of Element.getClientRects() for all the elements in the Range.
这两个 API 就可以返回选中的 range 的像素位置了
然后按照文档的提示, 对于元素还有 getClientRects 这个 API 可以用于获取标签的像素位置:
https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects
The Element.getClientRects() method returns a collection of rectangles that indicate the bounding rectangles for each box in a client.
写个脚本测试一下, 确实 OK:
关于具体用例看网上的文章: http://www.css88.com/archives/4187
关于浏览器兼容性可以看这里, 似乎蛮好的: http://www.quirksmode.org/dom/w3c_cssom.html
在web开发里 js如何获取获取div 的contentEditable内容 用于再提交
《html》
《head》
《title》获取显示 《DIV》 contenteditable=“true“ 时 输入的内容《/title》
《/head》
《body》
《div id=“kk“ style=“width:400px;height:300px;border:1px solid #999999;“ contenteditable=“true“》
《/div》
《input type=“button“ value=“code“ onclick=“alert(document.getElementById(’kk’).innerHTML)“ /》
《/body》
《/html》
更多文章:
media creation tool(window7旗舰版下载但是无法运行MediaCreationTool)
2025年2月27日 01:20
turn upside down(英语 turn upside down)
2025年3月11日 22:30
sly是什么牌子有什么简介吗?continuously是什么意思
2025年2月22日 23:40
网站源码爬取(python,求一个简单的selenium+re的网页源码爬取)
2025年4月1日 08:50
cocos教程(如何在Windows 7平台搭建Android Cocos2d-x3.0开发环境)
2025年3月8日 23:00
simpledateformat线程安全吗(Java开发中线程的安全问题以及产生的原因)
2025年4月15日 11:40
excel宏下标越界咋解决(EXCEL VBA 下标越界如何解决)
2025年3月14日 21:20
passion fruit 是什么水果(百香果的英语是什么)
2025年2月16日 03:40
redhat是什么意思(red hat linux和centos的区别)
2025年4月14日 10:20