:JavaScriptを使用してフレームウィンドウにイベントリスナーを追加するにはどうすればよいですか?私はこのように構成されているウェブサイトのためのChromeの拡張機能を記述しようとしています
<html>
<head>
....
</head>
<frameset>
<frame>
....
</frame>
<frameset>
<frame>
<html>
<head>
</head>
<body>
<select id="theThingIWant"></select>
</body>
</html>
</frame>
<frame>
....
</frame>
</frameset>
</frameset>
</html>
私はそれが完全に非常識に見えるけど、それは長い時間前に作られた、そしてそれは私が使用する必要が何か作業。私はそのselect
要素にアクセスしようとしていますが、唯一の方法は、id
が私が探しているものであることを確認するためにオブジェクトにclick
リスナーを追加して、event.target
をチェックするオブジェクトです。
Tab
キーが押されたイベントの後に関数をトリガーしたいのですが、基本的には同じことをしますが、どこで試してもリスナーをトリガーできないようですそれを添付してください。
私が何をしたいん私のクリックイベント、:動作しません
window.addEventListener('click', function(e) {
if (e.target.id === 'selAxisViaAEHybridContent')
remove_content_IDs(e.target);
});
は私のKeyDownイベント、(コンソールログは決して起こらない):
window.addEventListener('keydown', function(e) {
console.log(e);
});
私はそのframe
にアクセスすることができますselect
要素はdocument.getElementsByTagName('frameset')[1].children[0]
を使用していますが、その上の.children
プロパティは空の配列です。そのノードにイベントを添付しても、それでも機能しません。誰も私がこれを解決するために何ができるか考えていますか?最終的にselect
要素のフォーカスがTab
キーの場合は、remove_content_IDs()
を実行します。
これはまさに私が探していたものでした。あなたは真の紳士です。 –
おお!褒めてくれてありがとう。 :) –
実際に私の問題を解決するこの唯一の種類として、私は実際にフォローアップの質問を持っています: フレームのリンクをクリックするたびに、そのフレームのDOMがリロードされ、ロードされたメインウィンドウが失われたときのフレーム。どうすればこれを防ぐことができますか? –