我正在调整一个所见即所得的编辑器,我正在尝试创建一个将删除所选文本的图标h2.
在以前的版本中,以下命令完美地运行:
oRTE.document.execCommand("removeformat", false, "");
Run Code Online (Sandbox Code Playgroud)
但是在当前版本中,尽管该命令成功地从选定文本中删除了诸如粗体,下划线和斜体之类的h2标记,但它使标记保持不变.
(有趣的是,execCommand("formatblock"...)成功创建了h2标签.)
我想我将不得不放弃execCommand并找到另一种方式,但我也认为它不仅仅是一行代码!将不胜感激的建议.
这与提议的W3C 编辑 API 一致。它有一个格式化元素列表,H#元素没有列出。这些被认为是结构性的,而不仅仅是格式。删除这些标签并没有比删除UL或更有意义P。
您可以将格式更改为div,这不是最好的解决方案,但是它很有效而且很简短:
document.execCommand('formatBlock', false, 'div')
Run Code Online (Sandbox Code Playgroud)
还有另一种解决方案,可以从选定的文本中获取最接近的父级,然后可以将其展开,请注意,这可以是某些标记,例如<b>:
var container = null;
if (document.selection) //for IE
container = document.selection.createRange().parentElement();
else {
var select = window.getSelection();
if (select.rangeCount > 0)
container = select.getRangeAt(0).startContainer.parentNode;
}
$(container).contents().unwrap(); //for jQuery1.4+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6794 次 |
| 最近记录: |