gpt4 book ai didi

javascript - 调用 jquery ajax 响应中定义的函数

转载 作者:行者123 更新时间:2023-11-28 02:53:49 25 4
gpt4 key购买 nike

我正在对 php 页面('test.php')执行 ajax 请求test.php 里面是

<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>中标签并自己评估它!

关于javascript - 调用 jquery ajax 响应中定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com