我在用户可以输入和格式化一些文本的页面上使用 nicedit,它使用可内容编辑的 DIV 标记作为输入字段,然后将其提交给 php 脚本,该脚本将这种格式化文本转换为图像。此 contenteditable div 中的文本被自动换行,其中没有换行符。
有没有办法找出这种换行发生的位置,或者在发生时插入换行符,以便我可以将文本作为单独的行访问?
问问题
707 次
2 回答
1
您必须计算每个单词的像素坐标,这对于实现跨浏览器是可能的,但并非易事。一种方法是在每个单词之前插入一个零宽度的虚拟元素并使用它的位置。最近的 WebKit 和 Firefox 浏览器为您提供了getClientRects()
一种 DOM Range 对象的方法,这种方法更可取,因为它侵入性较小并且可能性能更好。IE 的专有TextRange
对象具有在单词和属性之间移动的方法boundingLeft
,boundingTop
这将为您提供 TextRange 的边界框。
于 2012-04-11T14:05:04.187 回答
0
尝试不同的方法,改变渲染图像的方式。也许您可以找到一个自动处理自动换行的图形库,或者复制页面上的 HTML 并使用PhantomJS或类似工具拍摄快照。
于 2014-09-10T17:09:10.757 回答