【问题标题】:Calling js function declared in html file from a .js file从 .js 文件调用 html 文件中声明的 js 函数
【发布时间】:2012-10-14 19:29:09
【问题描述】:

我正在处理我的 .js 文件。当我的函数 mainPaginationClicked 被调用时,我希望它也执行另一个函数 rotateMessage。 rotateMessage 在我的 html 文档的脚本标签中声明。有没有办法从我的 .js 文件中调用这个函数?

【问题讨论】:

  • 只要是声明的和全局的,你可以在任何地方调用它,但是你必须展示一个例子
  • 为什么不把rotateMessage 放在你的.js 中?有一个依赖于内联函数的外部 javascript 似乎很奇怪
  • 我最终只是将函数放在 .js 中。我得出了同样的结论:把它放到一个 html 脚本标签中是没有意义的
  • 有点离题,但通常让外部 js 依赖于内联是有意义的。如果您正在创建一个系统,其中 JavaScript 依赖于最容易从后端提供的信息,那么使用服务器端语言输出内联 js 但将大部分 js 保留在静态文件中是一个简单的解决方案(通常更喜欢类似于声明性配置,但仍然是依赖项)
  • @MattWhipple 你不同意更好的解决方案是使用脚本标记,该标记指向返回适当 js 的服务器端资源(脚本或其他)吗?

标签: javascript html function call


【解决方案1】:

只要在 HTML 中声明函数后加载 JavaScript 文件(或仅在声明函数后调用该函数),那么您声明的函数将在同一个 JavaScript 上下文中可用。实际的文件位置无关紧要,只有内存中的命名空间。

浏览器的默认行为是在使用 script 标签加载 JavaScript 时进行阻止,因此您可以安全地按照您希望它们执行的顺序编写 JavaScript 资源,而不必担心需要加载外部文件这一事实(除非明确控制,否则它们都会汇集在一个全局命名空间中)。

【讨论】:

    【解决方案2】:

    是的,您可以像在 .js 文件中那样调用它。 JS 中的函数在文件之间共享,变量也是。

    【讨论】:

      【解决方案3】:

      如果您确保您的 js 文件包含在 脚本标记之后,那么调用 rotateMessage 应该没有问题

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 1970-01-01
        • 2017-03-06
        • 2015-09-29
        • 2018-08-14
        • 1970-01-01
        • 2016-06-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多