首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TinyMCE -带有getContent的selection.setContent (扭曲按钮)

TinyMCE -带有getContent的selection.setContent (扭曲按钮)
EN

Stack Overflow用户
提问于 2017-09-20 22:33:58
回答 1查看 295关注 0票数 0

我想有一个按钮来包装所有标签的内容。

我的代码:

代码语言:javascript
运行
复制
      editor.addButton('MobileToggleArea', {
      text: '<M>',
      icon: false,
      onclick: function (){
          editor.selection.setContent('<div class="mobile-hide">' + editor.selection.getContent({format: 'raw'}) + '</div><div class="mobil-mehr">mehr</div>');
      }
  });

示例:

代码语言:javascript
运行
复制
<p>test</p>
<p>test</p>

结果:

代码语言:javascript
运行
复制
<p>&nbsp;</p>
<div class="mobile-hide">
<p>test</p>
<p>test</p>
<div class="mobil-mehr">mehr</div>
<p>&nbsp;</p>

问题:它添加了额外的p标签,为什么?如何预防?

其他问题(但不是很糟糕)是当仅选择一个p标记时:

代码语言:javascript
运行
复制
<div class="mobile-hide">test</div>
<div class="mobil-mehr">mehr</div>

p标签已经消失了。

插件: char字数统计自动保存charmap代码全屏图像导入char链接列表粘贴搜索替换table焦点表模板可视化块锚点hr不间断文本颜色选择器

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-09-25 19:05:29

我用Jquery解决了这两个问题:

代码语言:javascript
运行
复制
      editor.addButton('MobileToggleArea', {
      text: '<M>',
      icon: false,
      onclick: function (){
          editor.selection.setContent('<div class="mobile-hide">' + editor.selection.getContent({format: 'raw'}) + '</div><div class="mobil-mehr">mehr</div>');
          jQuery(editor.getBody()).find('.mobile-hide').prev().remove('p');
          jQuery(editor.getBody()).find('.mobile-hide').next().next().remove('p');
          jQuery(editor.getBody()).find('.mobile-hide').each(function(){
          if(!jQuery(this).find('*').length){
           jQuery(this).wrapInner('<p></p>');
          }
          });
      }
  });

开放以获得更好的解决方案=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46324915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档