javascript - 使用 document.write 对象渲染鼠标位置

标签 javascript

在下面的代码中,

     <script>
            var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
            if(!mie){
                document.captureEvents(Event.MOUSEMOVE);
            }
            document.onmousemove = mousePos;

            var mouseX = 0;
            var mouseY = 0;

            function mousePos(e){
                if(!mie){
                    mouseX = e.pageX;
                    mouseY = e.pageY;
                }
                else{
                    mouseX = e.clientX + document.body.scrollLeft;
                    mouseY = e.clientY + document.body.scrollRight;
                }

                /*document.formex.mousex.value = mouseX;
                document.formex.mousey.value = mouseY;*/
                document.write("X: " + mouseX + ";Y: " + mouseY + ";  Time: " + new Date());    
                return true;
            }
    </script>
<小时/>

预期的输出是为移动时的每个鼠标位置呈现每个新条目。

我可以使用 document.write 对象以一个鼠标位置仅渲染一个条目。有没有更好的渲染方法?

最佳答案

document.write clears the document以及其中的所有事件处理程序

试试这个

<script>
            var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
            if(!mie){
                document.captureEvents(Event.MOUSEMOVE);
            }
            document.onmousemove = mousePos;

            var mouseX = 0;
            var mouseY = 0;

            function mousePos(e){
                if(!mie){
                    mouseX = e.pageX;
                    mouseY = e.pageY;
                }
                else{
                    mouseX = e.clientX + document.body.scrollLeft;
                    mouseY = e.clientY + document.body.scrollRight;
                }

                /*document.formex.mousex.value = mouseX;
                document.formex.mousey.value = mouseY;*/
                document.write("X: " + mouseX + ";Y: " + mouseY + ";  Time: " + new Date());    
document.onmousemove = mousePos;
                return true;
            }
    </script>

观察return true之前添加的新语句以再次绑定(bind)事件。

或者简单地使用这一行而不是document.write(由@Tom提供)

document.body.innerHTML = "X: " + mouseX + ";Y: " + mouseY + "; Time: " + new Date();

如果你想追加就这样做

document.body.innerHTML += "X: " + mouseX + ";Y: " + mouseY + "; Time: " + new Date() + " </br>";

关于javascript - 使用 document.write 对象渲染鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34281823/

相关文章:

javascript - 类型错误 : Cannot read property 'loggedIn' of undefined

javascript - 如何让 webpack hot reload 检测 pug + express 的变化?

javascript - 通过 React 的 useState Hook 设置状态时,删除键的最佳或最有效的方法是什么?

javascript - 修复页面时遇到奇怪的 javascript

javascript - AngularJS 多维 JSON

javascript - Google Charts - 如何将轴标签分成两行? (多个 X 轴)

javascript - event.preventDefault() 或 return false 在 IE9 中不起作用

javascript - 为什么循环后某行代码不执行?

javascript - 查找表单中选中的复选框数量,结果是实际数量的两倍

javascript - 带有目标 ="_blank"行为的表单在 IE 9 和 10 中发生了变化