YUI编辑:摆脱< html>内容中的标签
-
03-07-2019 - |
题
我实施了 YUI富文本编辑器,我想摆脱只要我从编辑器中保存内容,就会< html>
,< body>
和 DOCTYPE
标记。我知道我之后可以通过解析HTML来做到这一点,但必须有一个更好的解决方案。
现在,当我在YUI编辑器中编辑文本时,会保存它:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<body>
<p>foo</p>
</body>
</html>
...但我想保存这个:
<p>foo</p>
有什么想法吗?
PS:我使用 yui_editor插件为ruby on rails 实现了YUI编辑器,但也欢迎YUI编辑器的通用答案!
解决方案
与此同时,我通过在提交时解析html来解决问题。是的,我知道,我最初并不是在寻找这个解决方案,但最后我得出结论,这是解决它的最简单方法。我用Rails的 Nokogiri RubyGem 进行解析:
value = Nokogiri::HTML(yui_content).css('body').to_html
value.gsub!(/<body>/,'')
value.gsub!(/<\/body>/,'')
其他提示
一个解决方案就是这个,它使用正则表达式来捕捉&lt; body
&gt;之间的所有内容。和&lt; / body&gt;
。示例(从YUI编辑器页面修改):
var myEditor = new YAHOO.widget.Editor('msgpost');
myEditor.render();
YAHOO.util.Event.on('somebutton', 'click', function() {
myEditor.saveHTML();
//The var html will now have the contents of the textarea
var html = myEditor.get('element').value, match;
match = html.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
html = match ? match[1] : html;
});
不隶属于 StackOverflow