0

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: ruby​​ on rails の yui_editor プラグインを使用して YUI エディターを実装しましたが、YUI エディターの一般的な回答も歓迎します!

4

2 に答える 2

1

その間、送信時にhtmlを解析することで問題を解決しました。はい、最初はこの解決策を探していませんでしたが、最終的にはそれが最も簡単な解決方法であるという結論に達しました。解析にはNokogiri RubyGem for Rails を使用しました。

value = Nokogiri::HTML(yui_content).css('body').to_html 
value.gsub!(/<body>/,'') 
value.gsub!(/<\/body>/,'')
于 2009-03-10T10:25:34.037 に答える
0

1 つの解決策はこれです。正規表現を使用して<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;
});
于 2009-03-04T18:57:41.687 に答える