我的问题是我有一个用 PHP 文件编写的 JavaScript 函数,当我从 AJAX 请求调用它时,我也想在成功的 AJAX 请求后在主页上运行该 JavaScript 函数。例如,我有一个 main.html 文件,我在其中编写了一个 AJAXX 函数,如下所示。
main.html
<script type="text/javascript">
/* AJAX Function
----------------------------------------------- */
function ajaxFunction() {
var FD = new FormData();
var ajx = new XMLHttpRequest();
ajx.onreadystatechange = function () {
if (ajx.readyState == 4 && ajx.status == 200) {
document.getElementById("mainContent").innerHTML = ajx.responseText;
hello(); //Uncaught ReferenceError: hello is not defined
}
};
ajx.open("POST", "/example.php", true);
ajx.send(FD);
document.getElementById("mainContent").innerHTML = 'Loading...';
return false;
}
</script>
我的 example.php 文件包含一个 JavaScript 函数
例子.php
<?php
echo 'Some contents and functions';
echo '<script type="text/javascript">
function hello() {
alert("Hello");
}
</script>';
echo 'Some contents and functions';
?>
现在,当我运行index.html
文件时,Uncaught ReferenceError: hello is not defined
控制台休息时出现错误,我看到函数体是在 HTML 页面上编写的,同时检查页面上的元素。
据我所知,innerHTML does not run scripts.
这个问题的解决方法是什么。您还可以查看以下链接的答案,我认为该答案与我的问题有关,但尝试过但无法解决我的问题。
研究问题/答案: