2009-12-19 42 views
0

在網頁上我有iframe,其中顯示了一些內容。
如果在iframe內按下任意鍵(iframe可編輯),我想運行一個函數。將事件處理函數添加到iframe以調用關鍵幀

我可以用ajax做(用的ScriptManager頁):

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> 

回答

0

我猜你的意思是 「做不使用腳本管理器」?

你可以做這種方式(使用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的event handler爲 「keyup」:

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

更多信息,可以發現herehere

+0

以及如何找出按下的按鍵? – kenny 2009-12-19 16:53:43

+0

「event.keyCode」。查看http://docs.jquery.com/Events/keyup – 2009-12-19 17:12:25

+0

的示例,而不使用jQuery – kenny 2009-12-19 17:15:10

相關問題