2009-03-04 4 views
0

에 태그를 제거하기 나는 YUI rich text editor을 구현하고 나는 최대한 빨리 편집기의 내용을 저장으로 <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> 

어떤 생각을?

추신 : 나는 yui_editor plugin for ruby on rails을 사용하여 YUI 편집기를 구현했지만 YUI 편집기 일반 응답도 환영합니다!

답변

1

한편 내가 제출할 때 html을 구문 분석하여 문제를 해결했습니다. 예, 저는이 솔루션을 처음에는 찾지 않았지만 마침내 문제를 해결하는 가장 쉬운 방법이라는 결론에 도달했습니다. 필자는 레일스에 Nokogiri RubyGem을 사용하여 구문 분석을 수행했습니다.

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; 
}); 
관련 문제