Добавление обработчика событий в iframe для вызова на keyup - PullRequest
0 голосов
/ 19 декабря 2009

На веб-странице у меня есть iframe, в котором я отображаю некоторый контент.
Я хочу запустить функцию, если в iframe нажата какая-либо клавиша (iframe редактируемая).

Я могу сделать это, используя ajax (со скриптом на странице):

Sys.UI.DomEvent.addHandler(document.getElementById('iframe1').contentWindow.document, 'keyup', iframeKeyHandler);

Но я хочу сделать это без ajax!

Обновленный код:

function Init() {
    document.getElementById('iView').contentWindow.document.designMode = "on";       

     document.getElementById('iView').contentWindow.document.onkeyup = function(event) {
       alert(event);
     }    
 }

<body onload="Init()" >   
<iframe id="iView" style="width: 434px; height:371px" ></iframe>
</body> 

1 Ответ

0 голосов
/ 19 декабря 2009

Полагаю, вы имели в виду «сделать это без использования диспетчера сценариев»?

Вы можете сделать это следующим образом (используйте attactEvent / addEventListener ):

<html>
<head>
<script type="text/javascript">
function Init() {
    var _win = document.getElementById("iView").contentWindow;
    var _doc = _win.document;
    _doc.designMode = "on";
    if(_doc.addEventListener) {// if support addEventListener
        _doc.addEventListener("keyup", frameKeyUp, true)
    }
    else { //For IE
        _doc.attachEvent("onkeyup", frameKeyUp);
    }
}
function frameKeyUp(e){
    alert(e.keyCode);
}
</script>
</head>
<body onload="Init()" >   
<iframe id="iView" style="width: 434px; height:371px"></iframe>
</body>
</html>

Или с помощью обработчика событий jQuery для " keyup ":

$('#iframe1').keyup(function(event){
  //... do your stuff here ..
  //use event.keyCode to get the asscoiated key
});

Более подробную информацию о событии клавиатуры можно найти здесь и здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...