背景 - 在由TinyMCE提供支持的文章编辑器中,用于大型媒体网站背后的企业内部CMS
HTML
<p>non-breaking-space: pound: £ copyright: ©</p>
Run Code Online (Sandbox Code Playgroud)
JS
console.log($('p').html());
console.log(document.getElementsByTagName('p').item(0).innerHTML);
Run Code Online (Sandbox Code Playgroud)
都归来了
non-breaking-space: pound: £ copyright: ©
Run Code Online (Sandbox Code Playgroud)
当我期待的时候
non-breaking-space: pound: £ copyright: ©
Run Code Online (Sandbox Code Playgroud)
一些元素使其实体反转(如磅和版权),并且一些元素被保留(非破坏空间).我需要一种方法来获取原始内部HTML,所有内容都保留,而不是由浏览器处理的内容; 那可能吗?
这是一个TinyMCE插件,它使用jQuery处理输入并将其放回原处.内容是通过数据库加载的,插件处理的图像标签根本不想修改文本内容.将某些实体自动更改回原始字符不会有太大问题,但是 -
我会使用这个答案 - /sf/answers/308318111/ - 但是不能因为我的HTML代码在用户需要编辑的textarea中并且我需要运行jQuery DOM操作(通过插件).
我能想到的一种方法是不使用jQuery/DOM来处理我需要更改的图像标签,而是像许多TinyMCE插件一样使用正则表达式; 但是因为我在正则表达式中被击落以从所有元标记中提取所有属性来尝试HTML上的任何正则表达式,所以希望有更好的方法!