作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 TinyMCE 编辑器中使用 mozilla firefox 中的 JavaScript 选择指定的文本。所以基本上我想在下面的文本中选择“Hello World”?
<body class="mceContentBody " id="tinymce" dir="ltr"> <p>Hi there Hello World this is amazing<br_mce_bogus="1"></p></body>
我成功地编写了一个 JavaScript 来在 IE 的 tinymce 编辑器中选择一个文本范围(因为 IE 使用文本范围对象,很容易移动范围)。不过,我在 mozilla 中选择我想要的文本时仍然遇到问题。它选择了全部内容,但不确定如何选择我想要的内容。有人吗?或者任何人都可以举例说明如何使用 tinyMCE API 来选择指定的文本吗?
var range = document.createRange();
var start = document.getElementById('tinymce');
range.setStart(start, 0);
range.setEnd(start, start.childNodes.length);
window.getSelection().addRange(range);
分别使用非 0 和 1 的 startOffset 和 endOffset(在 setStart 和 setEnd 中),JavaScript 抛出错误
Index or size is negative or greater than the allowed amount
最佳答案
TinyMCE 中有一个 API 可以执行此操作,但我不知道,所以我会给你 DOM Range 版本。您需要获取包含所需文本的文本节点:
var range = document.createRange();
var start = document.getElementById('tinymce');
var textNode = start.getElementsByTagName('p')[0].firstChild;
range.setStart(textNode, 9);
range.setEnd(textNode, 20);
window.getSelection().addRange(range);
IE 的 TextRange
和 DOM 的 Range
在概念上非常不同:前者几乎只关注文本内容,很少考虑 DOM 节点边界,而后者则完全关注 DOM节点(包括文本节点和元素)及其中的偏移量。
关于javascript - 如何在 firefox 中的 tinymce 编辑器中选择文本范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4565282/
我是一名优秀的程序员,十分优秀!