オンラインエディタは、HTMLコードをプレビューコンテナとして動作するはずの別のコンテナ内の子要素としてエディタに挿入することで、HTMLをレンダリングします。
HTMLスニペット(あらかじめロードされている場合はDBに格納されている部分)だけを格納する以外に、サーバー側のアクティビティはありません。
これは、純粋なクライアント側のアクティビティとして実行できます。もちろん、ユーザーが渡したコードの内容を解析するカスタムレンダラーを作成する必要があります。 はHTMLタグを取り除き、スクリプトやその他の参照をheadタグにロードし、headタグで指定されたとおりにタイトルを設定しますbodyタグの内容をプレゼンテーションdivに追加します。
しかし、これは面倒です。 HTMLをDB /アプリケーションキャッシュに格納してiframe経由でレンダリングする方が良いので、部分的な読み込みを処理する必要はありません。ちょうどCRUD。 /================================ ========================= 更新:解明への応答
はい、可能です。あなたの「main-html」文書内に「javascriptテンプレート文字列変数」として「inner-html」を埋め込みます。 このようないくつかの事:
<script type="text/javascript"> // <![CDATA[
var innerhtml1 = `
<div>
<p>This markup is part of innerhtml1</p>
</div>
`;
// ]]>
</script>
(私はあなたがが、テンプレートリテラルのものを使用したい場合は、CDATAセクションを本当に必要ですかはわからない。)
次に、あなただけの実行可能性「メイン-HTML」ドキュメントと上
$("#container1").html(innerhtml1);
あなただけのHTMLと体のタグを持っていないことを確認してください。しかし、あなたが(上記のように)表示したいもののための十分なマークアップ。
実際にHTMLとbodyタグがある場合は、ソース文字列のbodyタグの内容を取り出してプレビューコンテナに挿入する方法を見つける必要があります。この文字列を渡すのは簡単ですタグとタグの間の正規表現とスクープのもの。 しかし、私はあなたがこれを必要としないかもしれないと確信しています。
この方法で、あなたのhtmlページ内にHTMLドキュメントのトン(冗談)を仮想的に保存できます。ここ
Codepenリンク: http://codepen.io/anon/pen/dOJMwo?editors=1010#0
テンプレートリテラルのことをサポートしているブラウザでのみ動作を注意してください(今のように、そのかなり良いここを参照してください:。EcmaScript6 template strings supportを)。 そうでなければ、あなたはまだ標準の文字列を使用することができますが、エスケープやその他の処理を使用して適切にフォーマットする必要があります。
これを明確にする必要があります。これは、私が書いたhtml文書でhtmlにしたいとします。たとえば、別のページをレンダリングする必要なく、後でページの結果を表示するコードスニペットがあります。 、その方法で私のファイル数は低く抑えられますが、これは可能ですか? –
私はあなたが必要と理解していると思うもので答えを更新しました。 –