关于Popup窗体事件的问题 本帖最后由 tao8812100010 于 2011-01-04 09:36:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function key_short()改成 (试试)function key_short( event) { // 键盘事件加event var evt = event ? event : (window.event ? window.event : null); if (event.keyCode == 13) { document.getElementById("b1").focus(); } ....} lz 精神可嘉,不过技术仍需努力,呵呵俺试了下,终于实现了另,http://topic.csdn.net/u/20101230/09/c7d1d137-8a92-47ef-932d-1113db069a3c.html也顺便结贴吧,嘿嘿L@_@K<html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /><script type="text/javascript">var oPopup = window.createPopup();function InitializePopup() { var pbody = oPopup.document.body; pbody.style.border = "solid black 1px"; pbody.innerHTML = ""; var btna = oPopup.document.createElement("button"); btna.innerHTML = "电影(a)"; oPopup.document.body.appendChild(btna); btna.onclick = function() { txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"; }; var btnb = oPopup.document.createElement("button"); btnb.innerHTML = "电视剧(b)"; oPopup.document.body.appendChild(btnb); btnb.onclick = function() { txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"; }; var txtHint = oPopup.document.createElement("div"); txtHint.id = "txtHint"; oPopup.document.body.appendChild(txtHint);}function ShowPopup(){ oPopup.show(100,0,800,600,document.body)}function key_short(){ if (event == null) { alert("event is null: true."); } else { //alert(window.event.keyCode); var key = window.event.keyCode; if(key==65) a(); if(key==66) b(); }}function a(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"}function b(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"}InitializePopup();</script></head><body><button onclick="ShowPopup()">Create pop-up!</button></body><script type="text/javascript"><!--document.body.onkeydown = function() { if (oPopup.isOpen) { //alert(event.keyCode); key_short(); ShowPopup(); }};//--></script></html> 非常感谢yixianggao 帮助我很多次了 元旦假期期间我尝试着搞了很多次 最终都以失败告终 先结贴给分 回头慢慢细看 顺便膜拜一下 lz 客气了,呵呵主要思路如下:既然从 popup 中无法获取到 event 对象,转而尝试能否从父对象(即 window)上获取 event,实验证明可以获取到。另 var oPopup = window.createPopup(); 仅在页面加载时创建一次,而非每次点击按钮时创建!对 document.body.onkeydown 中代码稍作调整,L@_@K<html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /><script type="text/javascript">var oPopup = window.createPopup();function InitializePopup() { var pbody = oPopup.document.body; pbody.style.border = "solid black 1px"; pbody.innerHTML = ""; var btna = oPopup.document.createElement("button"); btna.innerHTML = "电影(a)"; oPopup.document.body.appendChild(btna); btna.onclick = function() { txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"; }; var btnb = oPopup.document.createElement("button"); btnb.innerHTML = "电视剧(b)"; oPopup.document.body.appendChild(btnb); btnb.onclick = function() { txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"; }; var txtHint = oPopup.document.createElement("div"); txtHint.id = "txtHint"; oPopup.document.body.appendChild(txtHint);}function ShowPopup(){ oPopup.show(100,0,800,600,document.body)}function key_short(){ if (event == null) { alert("event is null: true."); } else { //alert(window.event.keyCode); var key = window.event.keyCode; if(key==65) a(); if(key==66) b(); }}function a(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"}function b(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"}InitializePopup();</script></head><body><button onclick="ShowPopup()">Create pop-up!</button></body><script type="text/javascript"><!--document.body.onkeydown = function() { if (oPopup.isOpen) { // Debug: // 打开 alert 时,ShowPopup 须同时打开! //alert(event.keyCode); key_short(); //ShowPopup(); }};//--></script></html> document.body.onkeydown = function() { if (oPopup.isOpen) { // Debug: // 打开 alert 时,ShowPopup 须同时打开! //alert(event.keyCode); key_short(); //ShowPopup(); }}对这里有些模糊 这个document指的是当前的父窗体吗? document 是父窗体的,即 window.document! 原来如此 刚才去吃饭了 这位大虾 还有个疑问 function a(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"}function b(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"}InitializePopup();这里为什么需要写InitializePopup()这个方法 InitializePopup()方法的作用就是为Popup窗体填写内容 在SHOW方法里已经把BODY对象赋过去了 为什么还需要调用这个方法呢? 对了对了 还有一个问题 var txtHint = oPopup.document.createElement("div"); txtHint.id = "txtHint"; oPopup.document.body.appendChild(txtHint);把txtHint赋值给txtHint的ID?有什么必要的作用吗? InitializePopup(),该方法仅为已创建的 popup 窗口添加了所需控件,但并未显示 popup 窗口。而 ShowPopup() 仅在指定的位置显示已创建 popup 窗口,而不再创建新的 popup 窗口。txtHint.id = "txtHint";是为了指定 id,"txtHint" 为字符串,以便通过 getElementById 查找。function a(){ oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"} ID明白了 但是这个InitializePopup()方法是怎么调用到的呢?因为在ShowPopup()方法中没有直接调用那个方法 那在显示该窗体的时候InitializePopup()方法是如何被调用到的?对于这点我不明白 InitializePopup() 方法是在页面加载时执行的,即在页面加载时创建 Popup 窗口,但处于隐藏状态,而 ShowPopup() 仅将 Popup 窗口从隐藏状态转为显示状态而已。 Web 开发常用手册DHTML 参考手册 -- 其中有对 popup 的详细说明http://download.csdn.net/source/308913JScript 语言参考http://download.csdn.net/source/308916CCS 样式表中文手册http://download.csdn.net/source/304124 如何使用javascript实现tab自动切换思路?? 砖家勿进,只求民间高手一枚~~如何让48w+次循环更舒心 在线等--跪求高手帮助啊 在Chrome下如何加载xml文件 如何把html代码中过滤内容? 请问有没有知道 怎么画从一点到另一点的半圆轨迹??? 求救checkbox全选 老板催的急 在线等 谢谢 解难题,送高分:层拖动问题 请教控制FLASH播放的问题. 求救:一个货币型数字的转换函数?!!!哪位帮忙啊!!!? 怎么将EXE文件跟JPG捆绑在一起 谁知道这个例子中的results.root是怎么来的?
改成 (试试)
function key_short( event) { // 键盘事件加event
var evt = event ? event : (window.event ? window.event : null);
if (event.keyCode == 13) {
document.getElementById("b1").focus();
}
....
}
也顺便结贴吧,嘿嘿L@_@K
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" /><script type="text/javascript">var oPopup = window.createPopup();function InitializePopup() {
var pbody = oPopup.document.body;
pbody.style.border = "solid black 1px";
pbody.innerHTML = ""; var btna = oPopup.document.createElement("button");
btna.innerHTML = "电影(a)";
oPopup.document.body.appendChild(btna); btna.onclick = function() {
txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>";
}; var btnb = oPopup.document.createElement("button");
btnb.innerHTML = "电视剧(b)";
oPopup.document.body.appendChild(btnb); btnb.onclick = function() {
txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>";
}; var txtHint = oPopup.document.createElement("div");
txtHint.id = "txtHint";
oPopup.document.body.appendChild(txtHint);
}function ShowPopup()
{
oPopup.show(100,0,800,600,document.body)
}function key_short(){
if (event == null)
{
alert("event is null: true.");
}
else
{
//alert(window.event.keyCode);
var key = window.event.keyCode;
if(key==65) a();
if(key==66) b();
}
}function a(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
}
function b(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"
}InitializePopup();</script>
</head><body>
<button onclick="ShowPopup()">Create pop-up!</button>
</body>
<script type="text/javascript">
<!--
document.body.onkeydown = function() {
if (oPopup.isOpen)
{
//alert(event.keyCode);
key_short();
ShowPopup();
}
};
//-->
</script>
</html>
既然从 popup 中无法获取到 event 对象,
转而尝试能否从父对象(即 window)上获取 event,实验证明可以获取到。
另 var oPopup = window.createPopup(); 仅在页面加载时创建一次,而非每次点击按钮时创建!对 document.body.onkeydown 中代码稍作调整,
L@_@K
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" /><script type="text/javascript">var oPopup = window.createPopup();function InitializePopup() {
var pbody = oPopup.document.body;
pbody.style.border = "solid black 1px";
pbody.innerHTML = ""; var btna = oPopup.document.createElement("button");
btna.innerHTML = "电影(a)";
oPopup.document.body.appendChild(btna); btna.onclick = function() {
txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>";
}; var btnb = oPopup.document.createElement("button");
btnb.innerHTML = "电视剧(b)";
oPopup.document.body.appendChild(btnb); btnb.onclick = function() {
txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>";
}; var txtHint = oPopup.document.createElement("div");
txtHint.id = "txtHint";
oPopup.document.body.appendChild(txtHint);
}function ShowPopup()
{
oPopup.show(100,0,800,600,document.body)
}function key_short(){
if (event == null)
{
alert("event is null: true.");
}
else
{
//alert(window.event.keyCode);
var key = window.event.keyCode;
if(key==65) a();
if(key==66) b();
}
}function a(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
}
function b(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"
}InitializePopup();</script>
</head><body>
<button onclick="ShowPopup()">Create pop-up!</button>
</body>
<script type="text/javascript">
<!--
document.body.onkeydown = function() {
if (oPopup.isOpen)
{
// Debug:
// 打开 alert 时,ShowPopup 须同时打开! //alert(event.keyCode);
key_short();
//ShowPopup();
}
};
//-->
</script>
</html>
if (oPopup.isOpen)
{
// Debug:
// 打开 alert 时,ShowPopup 须同时打开! //alert(event.keyCode);
key_short();
//ShowPopup();
}
}
对这里有些模糊 这个document指的是当前的父窗体吗?
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
}
function b(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"
}InitializePopup();
这里为什么需要写InitializePopup()这个方法 InitializePopup()方法的作用就是为Popup窗体填写内容 在SHOW方法里已经把BODY对象赋过去了 为什么还需要调用这个方法呢?
txtHint.id = "txtHint";
oPopup.document.body.appendChild(txtHint);
把txtHint赋值给txtHint的ID?有什么必要的作用吗?
是为了指定 id,"txtHint" 为字符串,以便通过 getElementById 查找。
function a(){
oPopup.document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
}
ID明白了 但是这个InitializePopup()方法是怎么调用到的呢?因为在ShowPopup()方法中没有直接调用那个方法 那在显示该窗体的时候InitializePopup()方法是如何被调用到的?对于这点我不明白
即在页面加载时创建 Popup 窗口,但处于隐藏状态,
而 ShowPopup() 仅将 Popup 窗口从隐藏状态转为显示状态而已。
Web 开发常用手册DHTML 参考手册 -- 其中有对 popup 的详细说明
http://download.csdn.net/source/308913JScript 语言参考
http://download.csdn.net/source/308916CCS 样式表中文手册
http://download.csdn.net/source/304124