一个很简单的例子 点击按钮弹出一个Popup窗口 前边的两段代码需要综合到一起 弹出的Popup窗体上需要写键盘事件 局部刷新等 最后的一段代码是我改好的 现在已经可以实现局部的刷新了 问题是键盘的事件应该如何添加呢 尝试了很多办法都报错 还望高手们赐教
<html>
<head>
<script type="text/javascript">
function show_popup()
{
var p=window.createPopup()
var pbody=p.document.body
pbody.style.border="solid black 1px"
pbody.innerHTML="111"
p.show(100,0,800,600,document.body)
}
</script>
</head><body>
<button onclick="show_popup()">Create pop-up!</button>
</body></html>下边这段是Popup窗体上应有的功能
<body ONKEYPRESS = "key_short()">
<script>function key_short(){
    var key = window.event.keyCode;
    if(key==97) a();
    if(key==98) b();
}function a(){
    document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
}
function b(){
    document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"
}
</script>
<button onclick = a()>电影(a)</button>
<button onClick=b()>电视剧(b)</button>
<div id="txtHint"></div>
</body>
下边的代码是改好后的代码 但是键盘事件加不上
<html>
<head>
<script type="text/javascript">
function show_popup()
{
var p=window.createPopup()
var pbody=p.document.body
pbody.style.border="solid black 1px"
pbody.innerHTML=""
p.show(100,0,800,600,document.body)var btna = p.document.createElement("button");
btna.innerHTML = "电影(a)";
p.document.body.appendChild(btna);var btnb = p.document.createElement("button");
btnb.innerHTML = "电视剧(b)";
p.document.body.appendChild(btnb);var txtHint = p.document.createElement("div");
p.document.body.appendChild(txtHint);btna.onclick = function() {
    txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>";
}btnb.onclick = function() {
    txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>";
}
}
</script>
</head><body>
<button onClick="show_popup()">Create pop-up!</button>
</body></html>

解决方案 »

  1.   

    刚才试验了一下,似乎 popup 弹出窗中按键不会触发 event,及 event 为 null,
    因此也就无法获取 keyCode!L@_@K
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" /><script type="text/javascript">
    function show_popup()
    {
        var p=window.createPopup()
        var pbody=p.document.body;
        pbody.style.border="solid black 1px";
        pbody.innerHTML="";    p.show(100,0,800,600,document.body)    var btna = p.document.createElement("button");
        btna.innerHTML = "电影(a)";
        p.document.body.appendChild(btna);    var btnb = p.document.createElement("button");
        btnb.innerHTML = "电视剧(b)";
        p.document.body.appendChild(btnb);    var txtHint = p.document.createElement("div");
        txtHint.id = "txtHint";
        p.document.body.appendChild(txtHint);    btna.onclick = function() {
            txtHint.innerHTML = "<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>";
        };    btnb.onclick = function() {
            txtHint.innerHTML = "<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>";
        };    pbody.onkeypress = key_short;
    }function key_short(){
        if (event == null)
        {
            alert("event is null: true.");
        }
        else
        {
            var key = window.event.keyCode;
            if(key==97) a();
            if(key==98) b();
        }
    }function a(){
        document.getElementById("txtHint").innerHTML="<table><tr><td>恐怖片</td><td>爱情片</td></tr></table>"
    }
    function b(){
        document.getElementById("txtHint").innerHTML="<table><tr><td>内地电视剧</td><td>港台电视剧</td></tr></table>"
    }
    </script>
    </head><body>
    <button onClick="show_popup()">Create pop-up!</button>
    </body></html>
      

  2.   

    就是这个问题解决不了 event总是空值 根本无法获取 该怎么解决呢
      

  3.   

    popup 是一种特殊弹出窗口,而且是 IE 自己扩展的,真的没啥好办法。建议 lz 还是用浮动 div 吧!
      

  4.   

    浮动DIV的话会有遮挡不住文本输入框等东西的问题 所以还是Popup最好用 唉.... 惆怅啊 就差这一点解决不了了 
      

  5.   

    实现了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>