gpt4 book ai didi

JavaScript 在 Firefox Scratchpad 中运行,但在加载 HTML 时不运行

转载 作者:行者123 更新时间:2023-11-29 18:53:18 24 4
gpt4 key购买 nike

我的问题与其他问题类似,但由于答案因代码的首次设置方式而异,所以我仍然没有找到适合我的问题的答案。让我向您介绍我尝试运行 JavaScript 所采取的步骤。

我在浏览器中打开一个新选项卡,按“Ctrl + O”调出文件资源管理器,然后打开链接到 JavaScript 的 html 文件。代码永远不会从文件中执行;只有当我从 Scratchpad 运行它时它才会运行。

如何让我的 JavaScript 从“script.js”文件运行而无需将其复制到 Scratchpad?

function autocomplete(inp) {

if (inp) {
/*execute a function when someone writes in the text field:*/
inp.addEventListener("input", function(e) {
console.log("We have input! - " + inp.value);
});
/*execute a function presses a key on the keyboard:*/
inp.addEventListener("keydown", function(e) {
console.log("We have keydown! - " + e.keyCode);
});
}


}

// Run autocomplete when there is imput
autocomplete(document.getElementById("myInput"));
<head>
<link rel="stylesheet" href="styles.css">
<script src="script.js" type="text/javascript"></script>
<title>Autocomplete Test</title>
</head>

<body>
<div>
<div>
<h2>Input Tester</h2>
<p>Enter text into the field to test</p>

<form class="autocomplete" autocomplete="off">
<div class="wrapper">
<input id="myInput" type="text" name="myCountry" placeholder=" Search Hotels">

<!-- Trigger/Open The Modal -->
<button type="button">Search</button>
</div>
</form>
</div>

</div>
</body>

注意:这在 Stackoverflow 上运行没有问题。当从您创建的文件(在您选择的代码编辑器中)加载到您的浏览器时,该错误显示得最好。我正在使用 Atom 代码编辑器,以防有人发现它相关。

最佳答案

脚本标签默认阻止;浏览器等待脚本完成执行,然后继续解析其下方的更多 HTML。所以,当时<script src="script.js"...运行时,文档尚未填充。

或者:

(1) 给脚本标签一个defer属性(首选):

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

(2) 将整个脚本包装在 DOMContentLoaded 监听器中:

window.addEventListener('DOMContentLoaded', () => {
autocomplete(document.getElementById("myInput"));
});

(3) 将你的脚本移动到主体的末尾:

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

关于JavaScript 在 Firefox Scratchpad 中运行,但在加载 HTML 时不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com