インラインフレームのキーイベント
IE7のインラインフレームでキーイベントを取得しようとしているのですが、オブジェクトがありませんとエラーになってしまいます。
こちら通常の場合は上手くいくのですが、
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<title>HTML Editor</title>
<script type="text/javascript">
document.onkeydown = function(e) {
var shift, ctrl;
keycode = event.keyCode;
ctrl = event.ctrlKey;
shift = event.shiftKey;
// キーコードの文字を取得
keychar = String.fromCharCode(keycode).toUpperCase();
// Ctrl同時押しの場合
if (ctrl) {
if (keychar == "C") {
alert('Ctrl+C');
}
}
}
</script>
</head>
<body id="oBody">
<span id="editSpan">
<iframe id="oIframe" style="width:100%;height:50%">
</iframe>
</span>
</body>
</html>
次のようにインラインフレームの中で行おうとするとエラーになってしまいます。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<title>HTML Editor</title>
</head>
<body id="oBody">
<span id="editSpan">
<iframe id="oIframe" style="width:100%;height:50%">
</iframe>
</span>
<script type="text/javascript">
oIframe.document.onkeydown = function(e) {
var shift, ctrl;
keycode = event.keyCode;
ctrl = event.ctrlKey;
shift = event.shiftKey;
// キーコードの文字を取得
keychar = String.fromCharCode(keycode).toUpperCase();
// Ctrl同時押しの場合
if (ctrl) {
if (keychar == "C") {
alert('Ctrl+C');
}
}
}
</script>
</body>
</html>
なにか解決方法ありますでしょうか。
よろしくお願いします。
お礼
少し今一つ整理できないので別質問として上げさせていただきます。 情報ありがとうございました。
補足
情報ありがとうございます。 関数で引数を使用するものがあると思うのですが、 keisan(1,2); 等で function keisan(x,y){ a=x+y; documnet.write(a); } の場合、 document.onkeydown = keisan(); の使い方は間違っているということになるのでしょうか? キーが押されたとき、足し算させて処理をさせ、結果を表示させる。 という内容にしたいのですが。