2009-03-04 111 views
0

摆脱标签我实现了YUI rich text editor,我想获得,只要我保存从编辑内容摆脱<html><body>DOCTYPE标签。我知道我可以通过解析HTML来做到这一点,但必须有更好的解决方案。YUI编辑器:在内容

现在这个时候我编辑的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> 

任何想法?

P.S .:我使用yui_editor plugin for ruby on rails实现了YUI编辑器,但是也欢迎YUI编辑器的通用答案!

回答

1

与此同时,我通过解析提交的html解决了问题。是的,我知道,起初我并没有在寻找这个解决方案,但最终我得出结论,这是解决问题的最简单方法。我用Rails的​​做解析:

value = Nokogiri::HTML(yui_content).css('body').to_html 
value.gsub!(/<body>/,'') 
value.gsub!(/<\/body>/,'') 
0

解决方法之一就是使用正则表达式来捕获<body>和</body>之间的所有内容。示例(从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; 
});