非常にシンプルなフォームを持つChrome拡張機能を作成しています。フォームが送信されるたびにDOMContentLoadedが呼び出されます
<html>
<head>
<title>Getting Started Extension's Popup</title>
<script src="popup.js"></script>
</head>
<body>
<div id="status"></div>
<form id="typeForm">
Type: <input id="typeInput" type="text" name="type"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
そしてpopup.js以下があります。
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('status').textContent = 'Enter Type';
document.getElementById('typeForm').removeEventListener('submit', typeFormDidSubmit);
document.getElementById('typeForm').addEventListener('submit', typeFormDidSubmit);
});
function typeFormDidSubmit() {
var type = document.getElementById('typeInput').textContent;
if (type && type.length > 0) {
document.getElementById('status').textContent = 'Processing...';
startProcessing();
} else {
document.getElementById('status').textContent = 'Type cannot be empty';
}
}
今の問題は関係なく、私がフォームに入力する内容の、それはできるだけ早くtypeFormDidSubmitが呼び出されるように、空または他のいくつかの文字であることですDOMContentLoadedもトリガされ、ステータスメッセージが「Enter Type」に点滅します。私はDOMContentLoadedが1ページにつき1回しか呼び出されないと考えました。
ページが読み込まれたときに最初のコマンドセットを1回だけ呼び出すことはできますか?
submit submitは、
ありがとう@JaromandaX、それは私がローカルのJSスクリプトをトリガーしたいので、私が使うべきものではないようです。おそらくTextArea +ボタンを使うべきです。 – ykonda