次のコードにボタンを置いたときに問題があります。 このJavascript
プログラムと私は言ってコンソールにエラーメッセージが表示されます。この機能は、私の目の前にあるときボタンがJavaScriptで消えています
ReferenceError: myClickFunc is not defined
。以下は関連するコードです。
最近似たような投稿をしましたが、回答は得られませんでしたが、いくつかのヒントがあり、問題を解決するためにいくつかの調査を行いました。ここで私は午前中に現在の状況がある
行の前に次のコードでボタン:
dbRef.on("value", function(snapshot)
作品、それは必要がありますが、非常にすぐに消えるよう。他のボタン(ループ内)は、上記のエラーメッセージを生成します。私が気づいたもう一つのことは、ページが読み込みを終了しないように見えるということです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Web application</title>
</head>
<body>
<script src="https://www.gstatic.com/firebasejs/3.9.0/firebase.js"></script>
<script>
function someCallingFunc(timeRef,work)
{/* Beginning of someCallingFunc */
var workRef = timeRef.child(work)
workRef.on("value", function(workSnapshot) {
var rcdData = workSnapshot.val();
document.write("English name: " + rcdData["engName"] + "<br/>\n");
document.write("<input type='Submit' value='Edit' onClick='myClickFunc()'><br/>\n");
});
}/* End of someCallingFunc */
function myClickFunc()
{/* Beginning of myClickFunc */
window.open("http://www.google.com");
}/* End of myClickFunc */
var config = {
apiKey: ".........",
authDomain: "..........firebaseapp.com",
databaseURL: "..........firebaseio.com",
projectId: ".........",
storageBucket: "..........appspot.com",
messagingSenderId: "........."
};
firebase.initializeApp(config);
var dbRef = firebase.database().ref().child('DataList');
// This button works but only appears for half a second, then disappears.
document.write("<button onClick='myClickFunc()'>EDIT</button><br/>\n");
dbRef.on("value", function(snapshot) {
for (number in snapshot.val()) {
document.write("Year " + number + " :<br/>\n");
var numberRef = dbRef.child(number)
numberRef.on("value", function(numberSnapshot) {
for (work in numberSnapshot.val()) {
someCallingFunc(numberRef,work);
document.write("<br/>\n");
}
});
}});
</script>
</body>
</html>
myClickFunc()の場所をさまざまな方法で変更しようとしましたが、成功しませんでした。
JSでの経験はあまりありませんが、私は初心者の間違いをしなければなりません。しかし、そのミスはどこですか?
イベントハンドラで 'document.write'を使用しています。このイベントハンドラは、ページがロードされ、 'document'が閉じられた後に呼び出されます。このため、この時点で 'document.write'を呼び出すと、既存のコンテンツが追加されるのではなく上書きされます。 –