は、私は次のようにページが定義されている:コールバック関数が定義されていないのはなぜですか?
<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 Developer Toolsに従って設定されているようですが、PointerEventPrototype
が作成されています。コールバックを設定するaddEventListener()
を含む行をコメントアウトすると、PointerEventPrototype
は存在しません。最初のページ上のボタンをクリックする
は、以下に示す、2ページ目を含む別のウィンドウを起動します:
<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>
2ページ目は、最初のページにコールバック関数の設定に対応するために意図されて保存]ボタンが含まれています。保存ボタンをクリックすると、「保存ボタンがクリックされました!」コンソールに出力されますが、次の行cb(message)
は、cb
が定義されていないというエラーをスローします。どのようにこれを未定義にすることができますか?別の構文を使用してコールバック関数を呼び出す必要がありますか?
あなたの 'cb()'関数は一つのページに定義されていて、あなたは*別の*ページからそれを呼び出そうとしています。 – Pointy
あなたの2つの機能は同じページに定義する必要があります。 –