Javascript Jquery ajax调用删除脚本标记

Javascript Jquery ajax调用删除脚本标记,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用jquery通过ajax调用页面。我有一些jquery函数,它们加载在从ajax调用的页面返回的html中。问题是我试图在返回的数据中包含js文件,它返回html,但似乎去掉了脚本标记: function buildDisplayResults() { $.ajax({ method: 'get', cache: false, url : '/display_results.ph

我使用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); }
         });

    }
我所拥有的返回数据


上面的脚本代码总是被剥离出来,但我需要在返回的数据中使用它,以便函数在ajax调用发送回的数据中工作。有什么想法吗?

据我所知,应该行得通;它必须是您的环境或正在获取的标记中的其他内容。我已经对它进行了测试,并让它在IE6、IE7、IE8、Linux和Windows上的Chrome9、Linux和Windows上的Firefox3.6以及Linux和Windows上的Opera11上运行;所有这些都使用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);
  }
});
…其中
/etobe4/2
资源如下所示:

<p>I'm the snippet.</p>
<script type='text/javascript' src='/etobe4/2'></script>
<p>I'm the snippet after.</p>
jQuery("<p>I was added by the external script file.</p>").appendTo(document.body);
jQuery(“I是由外部脚本文件添加的。

”).appendTo(document.body);

可能与@Felix重复:很难说这是否与之重复。如果是这样,那里的答案似乎有点误导或迂回。:-)@克鲁德:嗯。那么也许我的判断太快了。我刚才看到了很多其他的“我通过Ajax加载HTML,但它不执行JavaScript”——问题。啊,但是现在我想起来了。。。如果我直接在页面中使用JavaScript,它可能不起作用,但是如果我引用另一个脚本,它应该会起作用。这是正确的吗?@Felix:如果你不使用
文档,它可以用任何一种方式。写
。快速提问,ajax调用每30秒循环一次。在返回的数据中包含脚本意味着每次调用时都会重新加载它,对吗?如果是这样的话,有办法吗?@John:“……每次都会重新加载……对吗?”对。“如果是这样的话,有没有办法?”没有,您必须预处理HTML文本(
data
,在我的示例中是
success
callback),以便第二次删除脚本标记。下面是一个非常基本的示例:(续)@John:(继续)如果您需要比这个非常基本的示例更灵活,并删除所有脚本,您可以尝试使用正则表达式,尽管使用正则表达式解析HTML充满危险。尽管如此,原型库人员认为他们已经使用了它,您可能会查看其函数的实现并尝试提取它。