[英]Calling function defined in jquery ajax response
我正在对test.php内的php页面('test.php')进行ajax请求是
<script type="text/javascript">
function test() {
alert('test');
}
</script>
<div id="abc">some normal content too</div>
现在,此功能对于每个页面加载都是唯一的,即它是通过php生成的,用于执行不同的操作
因此,我的问题是如何调用该函数test();。
正如jquery认为响应只是文本,所以它不会评估它
jQuery具有返回的数据类型
一个是脚本,另一个是html
但是它似乎并没有混合在一起。
我怎样才能解决这个问题?
jQuery的.load()
函数将评估<script>
的响应内容的标签,但只有当你调用.load()
不涉及选择退出之前,它插在DOM响应的一部分。
因此,此调用:
$('#myContainer').load("/some/url", function() { /* ... */ });
将导致运行任何脚本内容,但这:
$('#myContainer').load("/some/url #stuffIWant", function() { /* ... */ });
将不会。 我不知道为什么会这样,但确实如此。
如果您以第一方式进行加载,请理解,直到加载完成,您才能使用定义为全局函数的任何内容(或全局的任何内容)。 从而:
$('#someplace').load(url, function() { } );
newGlobalFunction("hi");
将无法工作,因为在异步请求完成之前不会定义“ newGlobalFunction”。 因此,这应该起作用:
$('#someplace').load(url, function() {
newGlobalFunction("hi");
});
如果您的ajax结果只不过是脚本内容,那么您也可以考虑不将其包装在<script>
标记中,而自己进行评估!
您是否尝试过将其作为外部文件加载? 外部文件可以是php页面,也可以是生成JS代码。
br
保罗
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.