javascript - 页面加载时仅执行一个 JS 脚本

标签 javascript html node.js express

我有以下 html 头,它加载 3 个 JS 文件:search.js、create.js 和maps.js:

<head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="/maps.css" />
      <script
              src="https://code.jquery.com/jquery-3.1.1.min.js"
              integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
              crossorigin="anonymous"></script>
    <script src="https://maps.googleapis.com/maps/api/js?key=<my-key>=initMap"
    async defer></script>
      <script src="/search.js"></script>
      <script src="/create.js"></script>
      <script src="/maps.js"></script>

  </head>

我还有以下服务器端代码:

var express = 
require('express');
var path = require('path');
var app = express();
app.use('/', express.static(path.join(__dirname, 'static')))

app.get('/', function(req, res) {
  res.sendFile(__dirname+'/index.html');
});

app.listen(3000, function () {
    console.log('meetup listening on port 3000!')
})

当index.html加载时,客户端似乎只执行一个JS脚本(通过在每个文件中记录“script x returned”进行测试)。执行的脚本始终是最后加载到头部的脚本。 (即,如果 <script src="/search.js"></script> 是最后一个,则控制台将仅记录“脚本 search.js 已加载”)。执行的脚本始终按预期工作。其他脚本都在js控制台加载,但不执行。对这里出了什么问题有什么想法吗?

编辑:所有三个脚本看起来都像

window.onload = (function(){
    console.log('search.js loaded');

/*
*event handling and DOM manipulation logic here
*/
});

已修复:已替换 window.onload = (function(){...});$(document).ready(function(){...});

最佳答案

这可能与您在脚本中设置事件处理程序的方式有关。您只能为“window.onload”事件使用一个事件处理程序,就像您所显示的那样。因此,加载脚本时不会调用同一事件的所有其他事件处理程序。 尝试使用类似的东西:

window.addEventListener("onload", function(){
  console.log('I am loaded');
});

使用上述内容,您可以让多个事件处理程序监听同一事件,在本例中为 onload 事件。 我希望这会有所帮助。

关于javascript - 页面加载时仅执行一个 JS 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599336/

相关文章:

jquery - 如果未选中父复选框,则取消选中所有子项

javascript - 是否可以在独立的 HTML 文件中使用 "inline"或 "embed"整个 javascript 库?

javascript - 在 JavaScript 中重定向 : IF GET parameter key allow to stay on the page; otherwise redirect to another page

javascript - 查看完成 Ajax 请求需要多长时间

javascript - React js useState 钩子(Hook)。单击复选框时如何更新其中包含数组的 json 对象的状态

javascript - 如何将数组对象传递给 Jade

ruby - compass:dist & execFile ("compass.bat", ...) - 警告:生成 EPERM

javascript - Android WebView Javascript 未启用

jquery - 试图默认隐藏我的下拉菜单

javascript - 使用 Enter 键选择与输入绑定(bind)的 Datalist 元素