1

AJAX呼び出しを使用して同じページからHTMLとJavascriptを取得したい。ただし、これを行うための最良の、最もクリーンな、そして最も安全な方法が何であるかはわかりません。Javascriptでクライアント上ですでに定義されているオブジェクトを編集したい。これまでのところ、私の考えは次のとおりです。

あるイベントで実行されるクライアント側のスクリプト:

getMoreStuff = function () {
  $.ajax({
    url: '/someRoute',
    success: function (data) {
      $data = $(data);
      $things = $data.find('#things');
      $('#content').append($things);
      // Execute the script
    }
  })
}

AJAXリクエストの本文:

<div id="things">
  <div class="post">...</div>
  <div class="post">...</div>
  <div class="post">...</div>
  <div class="post">...</div>
  <div class="post">...</div>
</div>
<script>
  (function() {
    window.things || (window.things = []);
    things.concat([...some array...]);
  })();
</script>

を定義するときにjQueryコードがそれを実行するかどうかはわかりません$data。または、スクリプトを文字列として送信してevalを使用する必要がありますか?

これは機能しますか?

$(document.body).append($data.find('script'));
4

1 に答える 1

3

ここでdataTypeを参照してください

"html":HTMLをプレーンテキストとして返します。含まれているスクリプトタグは、DOMに挿入されたときに評価されます。

于 2012-06-28T02:56:30.460 に答える