- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想构建另一个 WYSIWYG 编辑器。我已经有一个脚本可以在当前选择周围包装标签,即使对于 Firefox 多重选择也是如此,但在我编辑 html 后它不会重新选择范围。怎么会这样?
这是我的代码:
function wrap(tagName)
{
var selection;
var elements = [];
var ranges = [];
var rangeCount = 0;
if (window.getSelection)
{
selection = window.getSelection();
if (selection.rangeCount)
{
rangeCount = selection.rangeCount;
for (var i=0; i<rangeCount; i++)
{
ranges[i] = selection.getRangeAt(i).cloneRange();
elements[i] = document.createElement(tagName);
elements[i].appendChild(ranges[i].extractContents());
ranges[i].insertNode(elements[i]);
selection.addRange(ranges[i]);
}
}
}
}
抱歉我来自荷兰的英语不好。
最佳答案
您当前的代码与此相差不远,但对于以一个 block 元素(例如 <p>
或 <div>
)开始并以另一个 block 元素结束的范围,您可能会遇到不希望的行为。您缺少的基本位是您需要设置每个范围以包含包装的内容(使用 selectNode()
),并且您需要从选择中删除所有范围并在单独的步骤中将它们添加回去。
现场演示:http://jsfiddle.net/timdown/dmhPH/1/
代码:
function wrap(tagName)
{
var selection;
var elements = [];
var ranges = [];
var rangeCount = 0;
var frag;
var lastChild;
if (window.getSelection)
{
selection = window.getSelection();
if (selection.rangeCount)
{
var i = selection.rangeCount;
while (i--)
{
ranges[i] = selection.getRangeAt(i).cloneRange();
elements[i] = document.createElement(tagName);
elements[i].appendChild(ranges[i].extractContents());
ranges[i].insertNode(elements[i]);
ranges[i].selectNode(elements[i]);
}
// Restore ranges
selection.removeAllRanges();
i = ranges.length;
while (i--)
{
selection.addRange(ranges[i]);
}
}
}
}
关于Javascript - 在环绕标签后选择文本不起作用?所见即所得,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369885/
在基于 Web 的应用程序中,哪一个更好和更理想? 编辑: 其实我正在开发一个社区网站。所以用户的水平可能会有所不同。听说过 WYSIWYG 编辑器的 XSS 安全问题。我也不熟悉 WYSIWYM 编
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
有人有使用 Google Closure Editor/WYSIWYG 的经验吗?我正在考虑从 CKEDITOR 迁移到 Google Closure Editor/WYSIWYG。理想情况下,我很想
我想构建另一个 WYSIWYG 编辑器。我已经有一个脚本可以在当前选择周围包装标签,即使对于 Firefox 多重选择也是如此,但在我编辑 html 后它不会重新选择范围。怎么会这样? 这是我的代码:
我无法初始化 summernote WYSIWYG editor在我的应用程序中,我不知道为什么不起作用。 我开始导入JS和CSS文件,打开一个id为“summernote”的div标签,在底部插入j
我有以下代码“js”,浏览器将此错误放在“第 8 行,“未定义不是函数”。第 8 行是: $('.wysiwyg', context).once('wysiwyg', function () { 我不
我希望允许用户使用在线 WYSISYG 编辑器创建 PDF 文件。基本上是图像和文本,他们可以删除并创建 PDF。我将使用 jquery-ui 创建一个 UI。 我遇到了Flying Saucer这似
我们有一个编辑器编辑器,我们从数据库中填充它,但是一旦我们提交回数据,我们就需要清除文本区域。 我们尝试了各种组合,但无法清除它。 jQuery("#redactor").redactor('set'
Closed. This question is off-topic。它当前不接受答案。
我正在创建一个模仿 A4 打印页面的自定义 Qt 小部件,但在让字体以正确的大小呈现时遇到问题。我的小部件使用 QPainter::setViewport 和 QPainter::setWindow
我现在使用 CLEditor , 但我不能像页面的其余部分那样设置它的样式。那么有没有jQuery UI所见即所得的文本编辑器呢?或者有没有一种方法可以使用 jQuery UI 小部件元素来设置 CL
我正在尝试将 TinyMCE 或 CKEditor 集成到 Django 中,但我不知道如何管理上传图片。我一直在搜索并找到了一些 django 应用程序,但它们无法与我的 Django 版本(1.1
我正在开发一个邮件系统来发送大量电子邮件。我为 redactor 制作了一个插件,它向例如添加了一个标签。名。这些标签不应由用户编辑,只能删除。 我的问题是,每次我用 this.code.get ()
我几乎只是在寻找他们在添加评论时使用的与所见即所得非常相似的代码。我希望他们能够按回车键,它会自动抛出 标签。如果他们知道 HTML 标签,我知道让它在文本区域中工作的非常简单的方法,但几乎没有用户会
在执行 ckEditor 时,我想要一个特定的按钮已经被点击(以编程方式)。例如我想要按钮 blockquote 已经被点击: 这样当用户打开 ckEditor 时,与 blockquote 按钮相关
我正在寻找 WYSIWYG HTML 编辑器。我将在现有项目中使用它来生成 HTML 代码。因此,用户应该在编辑器中插入代码并设置代码样式。如果用户保存或按下按钮,我将获取 HTML 代码并将其保存在
我正在开发一个所见即所得编辑器(定制别人的代码),并且遇到了一些我似乎无法克服的问题。 到目前为止,我已经能够让大多数自定义 div 正常工作,但我在一些事情上遇到了一些麻烦: 问题 1:如果光标位于
我正在参与一个项目 1.6 2.5.1 2.3.0-gwt22 我无法升级。 我正在寻找一个可以导入图像的所见即所得 我尝试一下 https://www.tinymce.com/ tinymce 的
我正在尝试创建一个基于 Web 的 WYSIWYG 编辑器,它由一个 Canvas 和一个带有小部件的工具栏组成,例如文本对象、形状对象、线条对象、图像对象、视频对象和照片库对象。人们可以从工具栏中单
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我是一名优秀的程序员,十分优秀!