2009-03-04 14 views
0

içinde etiketleri kurtulmak Ben YUI rich text editor uygulanan ve kısa sürede ben editör içeriği kurtarmak olarak <html>, <body> ve DOCTYPE etiketleri kurtulmak istiyorum. Bunu daha sonra HTML'yi ayrıştırarak yapabilirim, ama daha iyi bir çözüm olmalı.YUI Editörü: içerik

Şu anda YUI düzenleyicide bir metni düzenlemek, bu kaydedilir:

<!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> 

... ama sadece bu kaydetmek istiyorum:

<p>foo</p> 

bir fikrin?

P.S .: YUI düzenleyicisini yui_editor plugin for ruby on rails kullanarak uyguladım, ancak YUI editörü genel bir yanıtı da memnuniyetle karşılarız!

cevap

1

. Evet biliyorum, öncelikle bu çözümü aramıyordum, ama sonunda çözmenin en kolay yolu olduğu sonucuna vardım. Ayrıştırma yapmak için Nokogiri RubyGem Rails kullandı:

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

Tek çözüm bu, <body> ve </body> arasındaki her şeyi yakalamak için normal ifadeler kullanır. (YUI editör sayfasından değiştirilmiş) Örnek: Ben teslim üzerine html ayrıştırma yoluyla sorunu kendim çözüldü arada

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; 
});