0

我的问题很明显,不需要澄清。

我的代码

document.onkeypress = function(evt) {
                var elem = document.getElementById('box');
                evt = evt || window.event;
                var charCode = evt.charCode || evt.keyCode;
                switch (charCode) {
                    case 37:
                        elem.style.position = 'absolute';
                        elem.style.left = parseInt(elem.offsetLeft - 10) + 'px';
                        elem.innerHTML = elem.offsetLeft;
                        break;
                    case 38:
                        elem.style.position = 'absolute';
                        elem.style.top = parseInt(elem.offsetTop - 10) + 'px';
                        elem.innerHTML = elem.offsetTop;
                        break;
                    case 39:
                        elem.style.position = 'absolute';
                        elem.style.left = parseInt(elem.offsetLeft + 10) + 'px';
                        elem.innerHTML = elem.offsetLeft;
                        break;

                    case 40:
                        elem.style.position = 'absolute';
                        elem.style.top = parseInt(elem.offsetTop + 10) + 'px';
                        elem.innerHTML = elem.offsetTop;
                        break;
                    case 101:
                        elem.style.position = 'relative';
                        elem.style.left = 0 + 'px';
                        elem.style.top = 0 + 'px';
                        break;

                    default:

                }
            };

前面的示例在 ff 中运行良好,但在 ie 中无法运行。

是什么原因在 IEoffsetLeftoffsetTop 不起作用。
有没有互联网浏览器的替代品,有什么问题?


试试jsfiddle中的演示。

4

1 回答 1

0

我相信一个简单的解决方法是将您正在监听的事件从 keypress 更改为 keydown

document.onkeydown = function(evt) {

JSFiddle

于 2013-04-25T13:29:42.447 回答