다음 코드에 버튼을 넣는 데 문제가 있습니다. Javascript
프로그램 I이 콘솔에 오류 메시지가 말하는 얻을 :자바 스크립트에서 사라지는 버튼
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'를 호출하면 기존 내용을 추가하는 대신 덮어 씁니다. –