質問:
P.S私はウェブ開発の分野に非常に慣れておらず、最初のプロジェクトに取り組んでいます
ありがとうございました
あなたが欲しいのは リッチテキストエディター です。標準HTML <textarea>
タグはプレーンテキストのみを受け入れます(テキストがHTMLマークアップであるかHTMLマークアップを含んでいる場合でも)。そこには多くの例があります(リンクされたページにリストされているものを含む)が、これにはパッケージ済みの例を使用することを強くお勧めします。自分でコーディングするのは、新しい人や、ある程度の経験がある人にとってはかなり複雑です。 TinyMCE と CKEditor はどちらも非常に一般的なものですが、他にもたくさんあります。
テキストボックスはワードパッドのようなもので、書式を設定することはできません。Wordまたはその他の書式設定されたテキストから貼り付けると、すべての書式設定が消去され、テキストだけが残ります。
テキスト領域にエディターを追加する必要があります。私は TinyMCE を使用していますが、他にもたくさんあります。
実装するには、Webディレクトリにすべてのソース( TinyMCE から取得できます)が必要です。
ここにあなたが試すことができる例があります:
これをページのヘッドセクションに追加します。
<script language="javascript" type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode: "exact",
elements : "Elm1",
theme_advanced_toolbar_location : "top",
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,"
+ "justifyleft,justifycenter,justifyright,justifyfull,formatselect,"
+ "bullist,numlist,outdent,indent",
theme_advanced_buttons2 : "link,unlink,anchor,image,separator,"
+"undo,redo,cleanup,code,separator,sub,sup,charmap",
theme_advanced_buttons3 : "",
height:"350px",
width:"600px"
});
</script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Skin options
skin : "o2k7",
skin_variant : "silver",
// Example content CSS (should be your site CSS)
content_css : "css/example.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "js/template_list.js",
external_link_list_url : "js/link_list.js",
external_image_list_url : "js/image_list.js",
media_external_list_url : "js/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
</script>
次に、textareaを呼び出すには:
<textarea name="content" style="width:100%">YOUR TEXT HERE</textarea>
注:<script language="javascript" type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script>
のjsファイルをダウンロードしてディレクトリに保存する必要があります
お役に立てれば!
これは、誰かがテキストをフォーマットできるようにしたい場合(例:WYSIWYG太字ボタンなど)を解決しませんが、事前にフォーマットされたHTMLを受け入れたい場合(他のHTMLソースからコピーして貼り付けるなど)ウェブページなど)、これを行うことができます:
<form ...>
<label>Paste your HTML in the box below</label>
<textarea style='display:none' id='foo'></textarea>
<div id='htmlsource' contenteditable style='border:solid 1px black;padding:1em;width:100%;min-height:2em;' ></div>
<input type='submit' />
</form>
<script>
jQuery(function(){
jQuery('form').submit( function(e) {
jQuery('textarea').val( jQuery('#htmlsource').html() );
});
});
</script>
これはcontenteditable
div
要素を使用しており、入力ボックスのようにフォーマットして、貼り付けられたHTMLを受け入れることができ、非表示のtextarea#foo
フォームが送信される直前に貼り付けられたHTMLが入力されます。
これは現状ではアクセス可能なソリューションではないことに注意してください。