gpt4 book ai didi

javascript - 如何从 Ajax 响应中执行主窗口中定义的 Javascript 函数

转载 作者:行者123 更新时间:2023-11-28 09:50:30 25 4
gpt4 key购买 nike

我在主index.html 文件中定义了Javascript 函数。
此页面的一部分是使用 Ajax(使用prototype.js)更新的。尝试从返回的 AJAX 代码中执行主文件中定义的 Javasript 函数失败。
evalScripts: Ajax.Updater prototype.js 函数中的 true 选项没有帮助。
我该如何解决?预先感谢您。

这是我的index.html 文件:

<html>
<head>
<script src="js/lib/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function foo(x) {
alert(x);
}

function loadContent() {
new Ajax.Updater('responseArea', 'response.php' , { evalScripts: true } );
}
</script>
</head>

<body>
<div id="main">
<span style="cursor: pointer" onclick="loadContent();">Click on me to call Ajax response</span><br>
<br></br>
</div>

<div id="responseArea">
This will be replaced with Ajax response
</div>
</body>
</html>


This is response.php:
<?php
echo '<span style="cursor: pointer" onclick="foo("foo Called from within Ajax response");">
Click on me to call foo from within Ajax response</span>';
?>

最佳答案

由于 evalScriptstrue,您可以在响应中放置任何 JS 片段,它将在 AJAX 调用完成时执行:

<script type="text/javascript">
foo("foo Called from within Ajax response");
</script>

如果不想执行,只是想包含更多的JS,可以插入常规的JS include标签:

<script type="text/javascript src="yournewcode.js"></script>

这比包含内联 JS 更好,因为它允许浏览器缓存文件。

关于javascript - 如何从 Ajax 响应中执行主窗口中定义的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121766/

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