如何从 Ajax 响应中执行主窗口中定义的 Javascript 函数
How to execute Javascript function defined in main window from within Ajax response
我在主索引.html文件中定义了Javascript函数。
此页面的一部分使用 Ajax(带原型.js)进行更新。尝试从返回的 AJAX 代码中执行主文件中定义的 Javasript 函数失败。
evalScripts:Ajax.Updater 原型中的真选项.js函数没有帮助。
我该如何解决这个问题?提前谢谢你。
这是我的索引.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>';
?>
由于evalScripts
是true
,您可以将任何 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更好,因为它允许浏览器缓存文件。
相关文章:
- 如何在选项卡上定义属性'的主窗口对象
- 如何解决'窗口未定义'终端上的节点JS出错
- Internet窗口未定义
- 自定义警报/弹出窗口和保持JS引擎
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- requirejs优化器错误:未定义窗口
- 用自定义javascript全局命名空间替换窗口
- 清除 Javascript 中窗口对象中的自定义变量
- 自定义社交共享未在窗口中打开
- 如何自定义数据::confirm弹出窗口以提示输入,该输入将附加到请求参数中
- 如何使用jquery创建自定义弹出窗口
- 如何使用Chrome'查看窗口对象中定义了哪些变量;的开发工具
- 使用自定义内容而不是url创建弹出窗口
- window.location.href窗口未在javascript中定义
- 自定义信息窗口
- 这些事件处理程序中的哪一个应该在窗口关闭时触发自定义函数
- 如何使用子窗口上下文执行在父窗口中定义的函数
- $window错误'$窗口未定义'Angular应用程序中的谷歌分析代码
- Chrome扩展-在全屏视频顶部显示自定义通知/弹出窗口(HTML元素)