Jquery ajax调用删除脚本标记

时间:2011-02-28 09:15:02

标签: javascript jquery ajax

我使用jquery通过ajax调用页面。我有一些jquery函数在从ajax调用的页面中加载返回的html。问题是我试图在返回的数据中包含js文件,它返回html但似乎剥离了脚本标记:

    function buildDisplayResults()
    {
         $.ajax({
             method: 'get',
             cache: false,
             url : '/display_results.php',
             dataType : 'text',
             success: function (text) { $('#showresults').html(text); }
         });

    }

我返回的数据<script src="/js/display.js"></script>

上面的脚本代码总是被删除,但我在返回的数据中需要它,因此函数在ajax调用发回的数据内部工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

据我所知,它应该有效;它必须是您环境中或您正在获取的标记中的其他内容。我已经对它进行了测试,并将其用于Linux和Windows上的IE6,IE7,IE8,Chrome 9,Linux和Windows上的Firefox 3.6以及Linux和Windows上的Opera 11;全部使用jQuery 1.5:

主要示例页面上的Ajax调用:

$.ajax({
  url: "/okuli4/3",
  dataType: "text",
  method: "get",
  cache: false,
  success: function(data) {
    $('#target').html(data);
  },
  error: function(xhr, status, err) {
    $("<p>Error: Status = " + status + ", err = " + err + "</p>")
      .appendTo(document.body);
  }
});

... /okuli4/3资源看起来像这样:

<p>I'm the snippet.</p>
<script type='text/javascript' src='/etobe4/2'></script>
<p>I'm the snippet after.</p>

... /etobe4/2资源看起来像这样:

jQuery("<p>I was added by the external script file.</p>").appendTo(document.body);

Live example