나는 다음과 같은 페이지가 정의되어 있습니다콜백 함수가 정의되지 않은 이유는 무엇입니까?
<body>
<div id="container">
<p>
<input id="myButton" type=button onclick=window.open('LandingPage.html'); value="Launch Search App">
</p>
</div>
<script>
function cb(msg) { console.log(msg); }
myButton.addEventListener('click', cb);
</script>
</body>
이 페이지는 보조 페이지에 대한 콜백 함수를 설정하는 책임이있다. 적어도 F12 개발자 도구에 따라 콜백 함수가 설정되어있는 것 같습니다. PointerEventPrototype
이 생성 된 것을 볼 수 있습니다. PointerEventPrototype
은 콜백을 설정하는 addEventListener()
이 포함 된 줄을 주석 처리하면 표시되지 않습니다. 그래서 나는 지금까지 작동한다고 믿습니다. 첫 페이지에 버튼을 클릭
두 번째 페이지를 포함하는 다른 창을 실행, 아래 :
<body>
<div id="container">
<p>
<input type=button value="Save" onclick="click_function()">
</p>
</div>
<script>
function click_function() {
var message = "Save button clicked!";
console.log(message);
cb(message);
}
</script>
</body>
두 번째 페이지가 첫 페이지에 콜백 기능 설정에 응답하도록 구성되어있는 저장 버튼을 포함 . Save 버튼을 클릭하면 "Save button clicked!" 콘솔에 출력되지만 다음 줄 cb(message)
은 cb
이 정의되지 않았다고 오류를 throw합니다. 어떻게 정의되지 않습니까? 다른 구문을 사용하여 콜백 함수를 호출해야합니까?
'cb()'함수가 한 페이지에 정의되어 있고 다른 페이지에서 호출하려고합니다. – Pointy
두 기능을 같은 페이지에 정의해야합니다. –