2016-09-08 11 views
0

Node.js/MySQLにWebアプリを持っています。ユーザーは自分の記事をアップロードできます。 HTMLのtextareaタグに書き込む。私はさらに「プロセス」ejsは変数に新しい行を表示しません

<script> 
 
\t var text = "<%=story.Content%>", 
 
\t \t result = anchorme.js(text); 
 
\t document.getElementById('story-content').innerHTML = twemoji.parse(result); 
 
</script>

問題を行うことができますので、ユーザーは上を開始するために入力ヒットした場合今、私は、スクリプトタグにEJSを使用してデータベースからアップロード取得することですしようとしています新しい行が書いている間。ここではテキスト変数にエラーが表示され、何も表示されないので、どうすれば修正できますか?

+0

スクリプトのようなインライン変数を使用することはできません。ii rc。 – Roberrrt

答えて

0

あなたはブラウザがそれを受け取るかを確認できるように、ページ上のソースを表示した場合、あなたはこのようなものを見ることができます - 注意改行:

var text = "I am a story over multiple lines 
and that's what javascript gets confused about 
because it can't figure out where the closing quotes are. 

Let's not even go into what could happen when someone uses quotes!" 

をだからあなたは本当にただの方法が必要ですそのページを壊すことなく、ストーリーのコンテンツをjavascriptに渡します。代わりに、ちょうどこのような文字列...

var text = "<%=story.Content%>" 

を押し出すことができますし、\ rを\ n、および\に引用符」とSO-に改行をエスケープとして...あなたはJSON形式でJavaScriptにものを渡すことができます上のあなたはそれがエスケープHTMLを渡したくないので、ここで​​3210ではなく<%=の使用に注意してください:。それが実行するため

var text = <%-JSON.stringify({ content: story.Content })%>.content; 

あなたのインラインスクリプトにそれでうまくエスケープされた文字列を使用してオブジェクトを渡します

関連する問題