web-dev-qa-db-ja.com

リッチテキストをコピーしてテキストに貼り付けることをユーザーに許可する必要がありますか?

ユーザーが記事を作成できるwikiスタイルのアプリケーションがあります。最近、一部のユーザーは、Microsoft Word、Excel、または特定のWebブラウザーなどのアプリケーションからのリッチテキストおよびフォーマットのコピーをエディターがサポートしていないと不満を言っています。

そのサポートを追加したくない理由(私は実際に「機能」を意図的に無効にした)は、送信された入力がどれほど汚いためです。たとえばMicrosoft Wordからコピーすると、多くのHTMLタグが追加されます。

これを無効にするのは間違っていますか?リッチコピー&ペーストを有効または無効にすることの長所と短所は何ですか。

21
Tom Ryan

あなたが尋ねる必要がある質問は:

リッチテキストの貼り付けを有効にすると、アプリケーションに価値が追加されますか?

ユーザーを追加しますか?ユーザーの維持に役立ちますか?それによって生産性が向上しますか?等.

答えが「はい」の場合は、コストと比較検討する必要があります。これは、入力を無害化するために必要な労力と、入力を無害にせず、データベースに「汚い」テキストが含まれている、または顧客を失うコストです。

合計が正になる場合は、この機能を実装する必要があります。

リッチテキストの貼り付けを有効にすると、UXが向上します。ユーザーのテキストは、満足のいく形式になっているため、ユーザーがテキストに何もしなくても、見栄えがよくなります。現在の実装で行われる追加の「再フォーマット」手順はありません。もちろん、一部のユーザーは、プレーンテキストとして貼り付けて再フォーマットする機能を必要とするため、この機能はオプションでなければなりません。

10
ChrisF

私が使用しているWebアプリケーションで、Office素材を貼り付けると、いくつかの重大な問題(ページ全体を壊す埋め込みスタイルシートを含む)が発生しました。しかし、これは実際には貼り付けの起訴ではありません...私の推奨は貼り付けを許可することです。ただし、送信されたHTMLを後処理し、許可されているHTMLタグ以外のすべてを削除します。特に、mso属性、<style>、および<script>タグを必ず削除してください。個人的にはもっと遠くへ行きます。基本的なHTMLタグ(<p>、<h?>、<strong>、<b>、<ul>、<li>、<br/>など)を除いてすべて削除し、スタイル、ID、クラスをすべてクリアします完全に属性。

これにより、HTMLに貼り付けることができますが、特定のフォント、マージン、div、スパンなどのリクエストは削除されます。失われたフォーマットは、必要に応じて簡単に置き換えることができ、これにより(デフォルトで)貼り付けられたすべてのコンテンツが標準のスタイルシートに準拠します。

許可されるコンテンツの境界線をどこに描くかは自由に決定できますが、これは通常両方の関係者を満足させるフォーマットの大規模なブロックの優れた代替手段であることがわかりました。この方法で私が目にした唯一の重大な損失は、段落オプション(マージン、行間)とフォント...ですが、この損失のため、最終結果(一貫したフォーマットのコンテンツ)は優れていると思います。

5
Myrddin Emrys

一般に、これはクライアントが問題ではなく必要なソリューションを説明する例だと思います。たとえば、WYSIWYG、「変更の追跡」、ディスカッションのためにドキュメントを送信する機能など、いくつかの便利な機能があるため、クライアントはWordを使用してWebコンテンツをタイプセットすると想定します。

彼らが本当に必要としているのは、彼らがwiki自体でコンテンツのドラフトを作成し、ライブで表示できるようにするためのツールを時間をかけて開発することです。すべてのタイプ処理のプレビュー。柔軟なドラフト状態を提供し、簡単なディスカッションとレビューを可能にし、Webアプリで「変更の追跡」のようなものを取得するためのニースの「差分」インターフェースさえも可能にします。

やりすぎかもしれません。ここで最も簡単な問題は、WordがWebのcontentEditableフィールドに貼り付けられたときにコピーされたテキストをHTMLに変換する自動ペーストボード処理を行わないようにする方法を見つけることです。 RTFフォーマットで入力を多かれ少なかれ得ることができるなら、狂ったフォーマットタグの範囲は減らされるべきです。

3
Kit Grose

私はあなたの決定に同意しますが、ユーザーが本当にフォーマットを必要とする場合は、それを有効にする必要があります。

たとえば、製品の調査研究の募集に役立つアプリケーションを作成しました。臨床試験のために送信されたメッセージは、レビューおよび承認されなければならず、承認されたのと同じスタイルおよびフォーマットで送信されなければなりませんでした。

私はこれを可能にするためにTinyMCEを使用しましたが、それは頭痛の種であり、多くの人々がそれを「Wordからの自動フォーマット」機能と考えているにもかかわらず、それは非常に一貫性がありませんでした。 :)

1
ATSiem

ここにいくつかの長所があります:

  • コピーと貼り付けは、非常に頻繁に使用される機能です。たとえば、 最も頻繁に使用されるMicrosoft Wordコマンド です。
  • アプリケーションのリッチテキスト形式は良いかもしれませんが、正直なところ、MS Wordほど良くありません。確かに、MS Wordでワードプロセッシングを行う方法をすでに知っていて、同じ仕事をするための新しいツールを習得する必要がないほとんどのユーザーにとっては。
  • アプリケーションがリッチテキスト形式をサポートしている場合があります。ただし、ユーザーが書式付きテキストを貼り付けることができない場合を除き、すべての記事で最初から貼り付ける必要があります。
  • ユーザー自身がMS Wordでフォーマットを実行していない場合でも、他の人から提供された情報(フォーマットを含む)を転記している可能性があります。書式設定されたテキストを貼り付けさせない場合は、すべての作業をやり直す必要があります。
1
Vince Bowdren