dongwende1984 2013-02-13 03:02
浏览 31
已采纳

php脚本调用父javascript函数

I have this folder structure:

index.php

js/scripts.js

In index.php I have a JavaScript function defined called execute().

Now within index.php I have a form that when submitted will call email.php and at the end of the execution of the email.php I do this:

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

This all works fine.

Now when I move execute() into scripts.js and I put this line of code in index.php:

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

then email.php is somehow unable to find execute() function. I know this because if I modify the execute function only the original version (the one that was in index.php) is ran.

I know this is weird, but I am new to this and I don't know of anyway I can debug this. Is there something obvious that I am missing?

  • 写回答

1条回答 默认 最新

  • dongshi2458 2013-02-13 03:41
    关注

    First, make sure you don't have a typo in your <script> tag. You've referred to your external script file as both script.js and scripts.js. One little 's' can make all the difference.

    Assuming you've included your script correctly, most likely, you have put execute within another function, thus taking it out of the global scope. That would be the case if script.js looks something like this:

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

    If that's the case, move execute out of it's containing function. You can also put execute in the global scope by explicitly making it a property of window:

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

    If you do it this way, it's fine to leave execute within another function.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?