2009-05-06 7 views
0

私は.jsファイルダイナミックJavascriptのファイルの改行&キャリッジリターン

すべてに.PHP作るために.htaccssを使用してPHPを使用して動的にJSのページを構築していますがJSの出力から離れてうまく動作します。

IE

$data = array('one', 'two'); 

foreach($data as $d){ 
    echo "document.write('This is a test for array item ".$d."'); \r\n"; 
} 

問題は、それがどんなに私は2行にわたってそれを得るカント試してみました何

document.write('This is a test for array one');document.write('This is a test for array two'); 

すなわち、1つの行にすべてを出力していないです。

アイデア?

答えて

2

編集:最終的なHTMLではなく、JSの改行に問題があると私は疑問を誤解していたようです。


あなたのJavaScriptがあるため、文字列の末尾に「\ r \ nの」の別の行に出ているが、その後、あなたはあなたのHTMLドキュメントにプレーンテキストを出力しています。あらかじめフォーマットされたブロック(「<pre>」など)や明示的な改行(「<br>」など)を使用している場合を除き、HTMLは改行しません。

あなたはおそらくあなたのコードは次のようになりたい:

foreach($data as $d){ 
    echo "document.write('This is a test for array item ".$d."<br>'); \r\n"; 
} 

はちょうどあなたのデータは非常に注意してください - あなたのHTMLに、ランダムな文字列を挿入すると、セキュリティホールを取得するための高速な方法です。

+0

私は人がそのような確信を持って虚偽の情報を売ってしまうと、それは私を駄目にする。 :/ –

+0

あなたは言ったように私は実際に内部の新しい行を心配していませんでした。ドキュメントを新しい行に書き出します。 – Lee

+0

私は質問を誤解しているように見えます。私はあなたが投稿した正確なコードを実行し、document.writesは別々の行に出てきます。 WebサーバーにJavaScript圧縮レイヤーがないのは確かですか?あなたのウェブブラウザがあなたのためにコードを必要としていないと確信していますか? wgetや他のコマンドラインユーティリティを使ってJSをダウンロードしてみてください。 – Neall

0

実際には、生成されたファイルのソースを見ると、実際に改行があることがわかります。 :)