私の現在のプロジェクトでは、html エディターを作成しています。
どのように機能する必要があるか
内部の要素
- テキスト領域 - HTML をテキストとして入力するには
- Iframe - 入力された HTML を実際のものとして表示するには [文字列 HTML を UI にレンダリング]
- 一部のボタン
ワーキングロジック
テキスト領域内に何かを入力する登録済みユーザー:
元 :
<div style="border:1px solid red;">This is a div</div>
そのユーザーがボタン [UI に変換] をクリックした後、iframe コンテンツを新しい値 [テキスト領域の値] に変更する必要があります。
iframe要素を変換した後、htmlは次のようになります
<html>
<head>
<style>
.mydiv{
}
</style>
</head>
<body>
<div class="mydiv" style="color:red">This is a div</div>
</body>
</html>
iframe HTML をテキスト領域に戻す別のボタンがあります。
これらはすべて正常に動作します [firebug の問題を除いて現在大きな問題はありません]、しかし、iframe コンテンツをカスタマイズするには、より良い UI を統合する必要があります - >
例:ユーザーがDIV
iframeでクリックすると、そのdivの色とフォントを変更するポップアップが表示されます[色を選択するためのカラーピッカーになり、フォントを選択するためのドロップダウンになります][いくつか実装する必要がありますもっとこのように]。大きな痛みにならないことを願っています。
その後、変更された値を取得する必要があります。
例: div の色を変更しました。
したがって、戻り値は次のようになります
<html>
<head></head>
<body>
<div class="mydiv" style="color:gray;">Hello World !</div>
</body>
</html>
すること
- スタイル属性 [上記] はインライン スタイルであることに注意してください。要素にクラスが定義されている場合は、それをクラス スコープに変換する必要があるため、CSS クラス「mydiv」を新しいスタイルで追加/更新する必要があります。
body
iframeの要素で何かを変更しているとします。これは一般的な要素であるため、css スタイル ブロックでスコープbody
を追加/更新する必要があります。BODY
元:
BODY{ color:グレー; }
皆さんが私のアイデアを理解してくれたことを願っています。現在のプロジェクトでこのようなものを実装する必要があります。
これよりスリムなものはありますか?[心配する必要がないように、私はそれを使用できます]またはどうすればこれを達成できますか? 特にcssクラスのグループ化。
ある種の正規表現を使用する必要があることを願っていますが、これには非常に弱いです。
完了するのを手伝ってください。
私が試したのはここです:http://jsfiddle.net/5PKXq/3/
ありがとうございました。