-1

我正在使用 php、mysql、html5&css3 和 javascript (ajax) 创建网页。为了提高性能,我决定使用 AJAX 仅获取<div id="content">实际更改的内容 div (),我不想一直重新加载整个代码。它的工作原理如下:在从 php 文件接收到新内容后,javascript 执行以下操作:
document.getElementById("content").innerHTML = new_content;
之后,new_content很好地显示...

现在问题:
在 中new_content,我也有一些 javascript,例如:

<script type="text/javascript" lang="JAVASCRIPT">
  alert('Hello!');
   ...
</script>

不幸的是,当将它插入到 div 中时,它根本没有执行......
当“自然地”调用 php 文件时,javascript 代码会执行我想要它执行的操作,因此其中没有错误。

在此先感谢


编辑:问题已解决,我包括 jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>

$("#content").html(new_content);在 javascript 中使用,如下所述。

4

2 回答 2

2

使用jQuery$.html. 它会自动为您执行脚本。

$("#content").html(new_content);
于 2013-05-26T13:09:51.203 回答
1

事实上,默认情况下,仅在替换 HTML 时禁用脚本执行——如果你看一下它就很有意义。你真的应该考虑使用像 jQuery 或 Mootools 这样的库来抽象出这样的问题。

如果您查看 Mootools 的Request.HTML实现,您会发现它的evalScripts选项默认为 true,稍后在调用期间会执行以下代码:

    response.html = text.stripScripts(function(script){
        response.javascript = script;
    });

            ...

    if (options.evalScripts) Browser.exec(response.javascript);

但是,如果没有 Mootools 的其他一些浏览器抽象代码,这可能无法单独工作,所以是的,我绝对建议在您的项目中包含一个库。

于 2013-05-26T13:10:11.230 回答