Rak*_*aks 3 html javascript keydown
我有一个带框架的jsp页面
<%@ include file="/includes/taglibs.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Welcome</title>
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(this).keydown(function(e) {
if(e.keyCode==27){
alert("escape pressed");
e.preventDefault();
}
});
}
);
</script>
</head>
<frameset rows="42,*" frameborder="0" framespacing="0" id="framest">
<frame src="/xyz/abc.html" scrolling="no" name="frame1"/>
<frame src="/xyz/init.html" scrolling="no" name="frame2"/>
</frameset>
</html>
Run Code Online (Sandbox Code Playgroud)
我正在尝试捕获转义键按下。但这似乎不起作用。在每个单独的框架 html 上,如果我编写相同的捕获代码,它就可以正常工作。
我应该在上面的代码中进行哪些更改,以便我只需编写一次 keydown 代码,这使我能够在任何框架的页面上的任何位置捕获 keydown。
请记住,框架是一个全新的 HTML 页面,具有完整的独立 DOM,因此 jQuery 不会将其包含在您的绑定中。
因此,您还需要绑定到这些文件:
function keyDownHandler(e) {
if(e.keyCode==27){
alert("escape pressed");
e.preventDefault();
}
}
for (var id in window.parent.frames)
$(window.parent.frames[id].document).keydown(keyDownHandler);
$(document).keydown(keyDownHandler);
Run Code Online (Sandbox Code Playgroud)
id
:for (var i = 0; i < window.parent.frames.length; i ++) {
var frame = window.parent.frames[i].document;
frame.addEventListener("keydown",keyDownHandler, true);
}
Run Code Online (Sandbox Code Playgroud)
for (var i = 0; i < top.window.frames.length; i ++) {
var frame = top.window.frames[i].document;
frame.addEventListener("keydown",keyDownHandler, true);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4658 次 |
最近记录: |