我有这个文件夹结构:
index.php
js/scripts.js
在index.php
中我定义了一个名为execute()
的JavaScript函数。
现在在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()
函数。我知道这个,因为如果我修改了execute函数,那么只运行原始版本(index.php中的版本)。
我知道这很奇怪,但我是新手,我不知道无论如何我可以调试这个。有什么明显的东西我不见了吗?
答案 0 :(得分:0)
首先,请确保您的<script>
代码中没有拼写错误。您已将外部脚本文件称为script.js和scripts.js。一点儿就可以发挥重要作用。
假设您已正确包含脚本,很可能是将execute
放在另一个函数中,从而将其从全局范围中删除。如果script.js看起来像这样,那就是这种情况:
(function () {
...
function execute () {
...
}
})();
如果是这种情况,请将execute
移出包含该功能的内容。您还可以通过明确将execute
作为window
的属性将window.execute = function execute () {
...
};
置于全局范围内:
execute
如果你这样做,可以将{{1}}留在另一个函数中。