0

我有这个文件夹结构:

index.php

js/scripts.js

index.php我定义了一个名为execute().

现在index.php我有一个表单,提交时将调用email.php并在执行结束时执行以下email.php操作:

echo '<script type="text/javascript">parent.execute();</script>';

这一切都很好。

现在,当我execute()进入scripts.js并将这行代码放入index.php

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

然后email.php不知何故无法找到execute()功能。我知道这一点,因为如果我修改执行函数,只会运行原始版本(index.php 中的那个)。

我知道这很奇怪,但是我对此很陌生,而且我不知道无论如何我可以调试它。我有什么明显的遗漏吗?

4

1 回答 1

0

<script>首先,确保您的标签中没有错字。您将外部脚本文件称为 script.js 和 scripts.js。一个小小的's'可以让一切变得不同。

假设您已正确包含脚本,很可能您已将其放入execute另一个函数中,从而将其排除在全局范围之外。如果 script.js 看起来像这样,情况就是这样:

(function () {
    ...
    function execute () {
        ...
    }
})();

如果是这种情况,请execute移出它的包含功能。您还可以execute通过显式使其成为以下属性来放入全局范围window

window.execute = function execute () {
    ...
};

如果您这样做,则可以留execute在另一个函数中。

于 2013-02-13T03:41:21.253 回答