我一直在試圖用Webpack實現基本的Javascript,但發現很多麻煩試圖獲得基本的方法工作。我知道這可能是我在DOM之前加載js的一個問題,但是我對這個問題的所有修復都是徒勞的。document.getElementById不與Webpack一起工作
舉例來說,我想只要運行let taskinput = document.getElementById('new-task');
,當我搜索taskinput變量在控制檯中我得到的Uncaught ReferenceError: taskinput is not defined(…)
回報。
我已經嘗試了很多不同的解決方案,以使DOM代碼在DOM載入後運行,但似乎沒有任何工作。
我試圖把我的JavaScript文件放在DOM底部的基本嘗試。
我試過基本JS方法,像這樣:
document.onreadystatechange = function() {
if (document.readyState === "complete") {
initApplication();
}
function initApplication() {(... placed code in here ...)}
我使用jqueries
$(document).ready(function() { });
我試圖注入我的JavaScript文件到我的HTML與HTML的嘗試webpack-plugin
有沒有什麼我失蹤與Webpack?
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sample Site</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<button id="new-task">click</button>
<script src="/assets/app.bundle.js"></script>
</body>
</html>
app.js
'use strict';
document.onreadystatechange = function() {
if (document.readyState === "complete") {
initApplication();
}
}
function initApplication() {
onButtonClick();
}
let onButtonClick = function() {
let taskInput = document.getElementById('new-task');
taskInput.onclick = alert('hey');
}
好吧,但那我該如何有效地與DOM進行溝通?使用webpack時,是否必須使用HTML模板語言或使用JavaScript生成所有頁面HTML? – Jleibham
「好的,但是我該如何與DOM有效溝通?」一般來說,您希望將供應商代碼(例如'jQuery')放在頁面的頭部,因爲它很可能不依賴於DOM狀態以及您自己的代碼,這些代碼可能與位於頁面底部的DOM進行交互身體標記,一切之後。也許我不明白你在問什麼,在這種情況下你能提供一個例子嗎? –
我的意思是,我老實說,只是嘗試一個簡單的警告框上點擊只用JavaScript。我正努力學習更多關於javascript的語言,而沒有任何其他庫的哨聲。但讓我拋出一些示例代碼來向你展示我正在嘗試做什麼。 – Jleibham