YUI Editor:< 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: Ruby on railsのyui_editorプラグインを使用してYUIエディターを実装しました、しかしYUIエディターの一般的な回答も歓迎します!
解決
その間、送信時にhtmlを解析して問題を自分で解決しました。はい、最初はこのソリューションを探していませんでしたが、最終的にそれが最も簡単な解決方法であるという結論に達しました。 Railsの Nokogiri RubyGem を使用して解析を行いました:
value = Nokogiri::HTML(yui_content).css('body').to_html
value.gsub!(/<body>/,'')
value.gsub!(/<\/body>/,'')
他のヒント
1つの解決策はこれです。&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