0

ブログの投稿入力として使用するために編集可能なiframeがあります。私はjQueryを使用してiframeの本体からhtmlを取得しています:

function sharePost (feedNumber)
{
  var postBox = $("#ifrNewPost" + feedNumber).contents(); // Gets iframe content
  var postContent = $('body', postBox).html(); // Gets iframe body

  var params = { post: encodeURI(postContent) };

  // Send to server
  $.ajax({

    type:'POST', 
    url: 'script/post.php', 
    data: params, 

    success: function(response) {
      $(document).append(response);
    }

  });
}

ほぼ完全に機能します。私の問題は、iframeに何かを貼り付けると、貼り付けたものの先頭に改行が追加されたように見え、送信すると、スクリプトが次のように失敗することです。「UncaughtSyntaxError:UnexpectedtokenILLEGAL」

encodeURIとencodeURIComponentを試しましたが無駄になりました。貼り付けた後にページのコードを表示すると、貼り付けたものに明らかな変更はなく、その前に新しい行が追加されているように見えます。HTMLをPHPスクリプトに安全に送信する方法に関する解決策はありますか?

4

2 に答える 2

1

問題は、結局、phpコードが何を返すかということでした!正規表現を実行して改行をbrに変更するだけで、うまくいきました。

$post = preg_replace("/(\r\n|\n|\r)/", "<br />", $post);
于 2012-08-24T12:02:42.797 に答える
0

nl2brを使用する

$post = nl2br($post);
于 2014-07-30T05:43:53.807 に答える