2016-08-03 7 views
1

Summernote WYSIWYGエディタを使用して、HTMLテンプレートを編集したり、パーソナライズされた領域に変更を保存する機能をユーザに提供しています。これを行うには、編集されたHTMLと共にバックエンドに一連のテキストフィールドをPOSTする必要があります。JavaScriptでDOM innerHTMLにアクセスする際の問題

編集可能なDIVからPOSTされたHTMLが、更新されたDOMをPOSTしない、つまり元のHTMLテンプレートであり、編集なしですべてが期待通りに機能しています。

ブラウザのdevツールコンソールを使用している場合、 'document.documentElement.outerHTML'を使って正しく更新されたDOMを見ることができますが、IDでouterHTML要素を取得する変数を設定すると、マークアップ。次のようにスクリプト内

変数は、(他のStackOverflowの回答に基づく)である:

var content = $('#template_text')[0].outerHTML; 

述べたように、これは私がDIVのコンテンツを投稿することができますが、そのA更新を投稿できません。ユーザーはテンプレートを作成します。

私はinnerHTML, outerHTML, html()を使用しようとしましたが、基本的には同じ結果が得られます。変数内でdocument.documentElement.outerHTMLを使用すると、これは更新された値をPOSTしますが、DIVだけでなくドキュメント全体を送信します(私はDIVのみ必要です)。

ご協力いただければ幸いです。

+0

あなたが 'var editedText = $( '#summernote')しようとするとどうなりますか?summernote( 'code');'? –

+0

David、あなたは絶対天才です!ありがとう、これはまさに希望の効果を持っていた。なぜouterHTMLのアプローチがうまくいかないのか分かりますか? – AlexB

+0

それは今働いてうれしい..まあ! DOMのアプローチは、ライブラリがどのようにそれに対処するかわからないので、達成するのはちょっと退屈かもしれません。私はこの回答を投稿します、あなたはそれを受け入れることができますか? –

答えて

1

代わりにDOMを操作する、私たちは、このようにライブラリの文書化の方法で

var editedText = $('#summernote').summernote('code');

に行くことを願って、このことができます!

関連する問題