Javascript 停止外部JS文件中的函数执行?

Javascript 停止外部JS文件中的函数执行?,javascript,Javascript,我包含了一个外部JS文件,其中包含一些代码,我需要在特定事件发生后(在提交联系人表单后)运行这些代码 外部文件有一个函数,但也调用该函数。如果可以在页面加载时运行该函数,那么这并不是什么痛苦的事情,但我需要在提交表单后运行它的函数。我的表单是通过AJAX提交的,所以我只需要在表单提交后运行外部文件的函数 我该怎么做 这里有一个例子来帮助 我的网站页脚: <script type="text/javascript"> var a_variable = 12345;

我包含了一个外部JS文件,其中包含一些代码,我需要在特定事件发生后(在提交联系人表单后)运行这些代码

外部文件有一个函数,但也调用该函数。如果可以在页面加载时运行该函数,那么这并不是什么痛苦的事情,但我需要在提交表单后运行它的函数。我的表单是通过AJAX提交的,所以我只需要在表单提交后运行外部文件的函数

我该怎么做

这里有一个例子来帮助

我的网站页脚:

    <script type="text/javascript">
       var a_variable = 12345;
    </script>
    <script src="//domain.com/external.js" type="text/javascript"></script>
  </body>
</html>
但是我只想在我想要的时间运行
doThis()
,而不是在页面加载时运行

我可以停止做这件事吗从执行到我明确告诉它


注意:我已经尝试通过创建脚本标记(javascript)并以这种方式加载来包含
external.js
,但是
external.js
中的函数需要写入我的用户浏览器,用户浏览器显示
无法对“文档”执行“写入”:除非显式打开,否则无法从异步加载的外部脚本写入文档。
。之后,我研究了中的解决方案,但没有解决问题。因此,我正在寻找一种方法来停止执行
doThis()

您能编辑external.js文件吗?如果是这样,您只需删除
doThis()
行,并添加一个侦听器,以便在窗口加载时调用函数,如下所示:

function doThis(){
   alert(window.a_variable);
}
window.onload = doThis;
如果无法编辑JavaScript文件,则会有点卡住。您可以尝试重写它,并按照上述模式在本地包含它(因为您可以提取文件,我假设您可以访问源代码,并且可以轻松下载并编辑文件)。我建议采取这种行动

如果您确实需要从特定的源中提取该文件,并且无法编辑该文件,您可以查看以下内容。这将允许您从其他JavaScript代码中加载JavaScript文件,因此您可以等待文档加载后再包含它。因此,您的html可以是:

<html>
    <body>
        <script type="text/javascript">
           var a_variable = 12345;
           window.onload = function() {
              require(["//domain.com/external.js"], function() {
                  console.log("loaded!");
              });
           }
        </script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.3/require.js"></script>
    </body>
</html>

var a_变量=12345;
window.onload=函数(){
需要([“//domain.com/external.js”],函数(){
log(“已加载!”);
});
}

我不明白,需要的时候就打电话吧?。不是在声明了上述函数之后。不能将
external.js
文件复制到您的服务器并修改它吗?external.js的实际内容是什么?听起来它好像有一个
文档。write()
调用?也许是广告供应商的脚本?如今,大多数大型广告供应商都允许异步使用。例如因为无法阻止外部文件中的函数执行。您可以使用XMLHttpRequest API加载脚本,然后操纵响应文本,并最终
eval
it。。。
<html>
    <body>
        <script type="text/javascript">
           var a_variable = 12345;
           window.onload = function() {
              require(["//domain.com/external.js"], function() {
                  console.log("loaded!");
              });
           }
        </script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.3/require.js"></script>
    </body>
</html>