无需javascript处理即可获取原始dom元素innerHTML

无需javascript处理即可获取原始dom元素innerHTML,javascript,html,tinymce,html-entities,Javascript,Html,Tinymce,Html Entities,背景-在TinyMCE为大型媒体网站背后的企业内部CMS提供支持的文章编辑器中 HTML 两者都返回 non-breaking-space:   pound: £ copyright: © 当我怀孕的时候 non-breaking-space:   pound: £ copyright: © 有些元素将其实体反转(如pound和copyright),有些元素保留(非中断空间)。我需要一种方法来获取原始的内部HTML,全

背景-在TinyMCE为大型媒体网站背后的企业内部CMS提供支持的文章编辑器中

HTML

两者都返回

non-breaking-space:   pound: £ copyright: ©
当我怀孕的时候

non-breaking-space:   pound: £ copyright: ©
有些元素将其实体反转(如pound和copyright),有些元素保留(非中断空间)。我需要一种方法来获取原始的内部HTML,全部保留,而不是由浏览器处理;可能吗

这是一个TinyMCE插件,它使用jQuery处理输入并将其放回原处。内容是通过数据库加载的,插件正在处理图像标签,根本不想修改文本内容。自动将某些实体更改回原始字符不会有太大问题,但是-

  • 我们不能修改社论的输入,即使它是次要的
  • 由于我们网站上存在一些浏览器兼容性问题,我们强制要求这些实体在保存之前必须是实体
我会使用这个答案——但是不能,因为我的HTML代码位于用户需要编辑的文本区域内,并且我需要运行jQueryDOM操作(通过插件)


我能想到的一种方法不是使用jQuery/DOM来处理我需要更改的图像标记,而是像许多TinyMCE插件那样使用regex;但自从我在年因为试图在HTML上使用任何正则表达式而被击倒后,我希望有一个更好的方法

Tinymce使用contenteditable iframe编辑内容。这就是原因
console.log($('p').html())将记录其他内容

使用以下代码获取纯编辑器内容:

tinymce.get('your_editor_id').getBody().innerHTML

我不会过多地关注问题的TinyMCE部分,但这通常是如何返回原始HTML的,这里显示了TinyMCE插件特有的相同问题-
ed.onPostProcess.add(function(ed,o){console.log(o.content);//outputs£;console.log($(''+o.content+'').HTML());//输出:
console.dir
具有此类文本的元素的
outputs不会显示保留实体的任何属性。即使是调试器(Chrome)也会显示所有元素的HTML,但不保留实体,所以我想你运气不好。
non-breaking-space:   pound: £ copyright: ©
tinymce.get('your_editor_id').getBody().innerHTML