我对 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:
- You can't move a window or tab that wasn’t created by
window.open
.- 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/