JavaScript - window.moveBy 不工​​作

标签 javascript

我对 JavaScript 还很陌生,刚刚学习了 window 对象。 我正在尝试制作一个简单的脚本,当按下其中一个箭头键时,该脚本会将浏览器窗口向一个方向移动 10 个像素。

我已经验证事件处理程序有效,关键代码正确,moveScreen() 函数正在执行,并且其中的条件也有效。 那为什么屏幕不动呢??? 到目前为止我已经在 Firefox 和 Chrome 中进行了测试。

function moveScreen(direction) {
    'use strict';

    if (direction === 'up') window.moveBy(0, -10);
    if (direction === 'right') window.moveBy(10, 0);
    if (direction === 'down') window.moveBy(0, 10);
    if (direction === 'left') window.moveBy(-10, 0);
}


function handleKeyDown(e) {
    'use strict';

    e = e || window.event;
    const key = e.keyCode;

    switch (key) {
        case 38:
            moveScreen('up');
            break;
        case 39:
            moveScreen('right');
            break;
        case 40:
            moveScreen('down');
            break;
        case 37:
            moveScreen('left');
            break;
    }
}


window.onload = function() {
    'use strict';
    document.onkeydown = handleKeyDown;
}

这是 HTML 文件,它只在正文中包含脚本:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script src="moveWindow.js"></script>
</body>
</html>

最佳答案

如果你在 MDN 上查看 moveBy 的描述 MDN moveBy你会发现你正在尝试的事情可能是不可能的。

Since Firefox 7, it's no longer possible for a web site to move a window in a browser, according to the following rules:

  1. You can't move a window or tab that wasn’t created by window.open.
  2. You can't move a window or tab when it’s in a window with more than one tab.

关于JavaScript - window.moveBy 不工​​作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38527683/

相关文章:

javascript - 如何在ckeditor中自定义工具栏?

JavaScript getElementByName 不起作用

javascript - JavaScript 中的土耳其语大小写转换

php - 如何让 PHP 函数在 javascript 结束后运行?

javascript - 检查 Typescript 类是否已实例化

javascript - 从文档中的提示框写入值

javascript - 函数声明与函数表达式 : what will be printed in this case?

javascript - 如何使用 angularjs 以表格格式打印数组?

javascript - 根据选择选项显示 div?

javascript - data-th JS 每页只工作一次