Python网页中的Javascript事件处理程序不工作

2024-05-08 16:05:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由Python生成的网页,需要启用Javascript事件处理程序。下面的代码返回一个错误:节点未定义。你知道吗

下面的问题有一个看起来很有希望的答案,但是我缺少了“node”变量赋值。我想添加一条评论,但系统不允许我这样做。上面说我需要50的声望才能加评论。你知道吗

Detecting arrow key presses in JavaScript

<BODY>
<script type="text/javascript">
node.addEventListener("keydown", function(event) {
    const key = event.key; // "ArrowRight", "ArrowLeft", "ArrowUp", or "ArrowDown"
});
switch (event.key) {
    case "ArrowLeft":
        // Left pressed
        alert( "Left Arrow" );
        break;
    case "ArrowRight":
        // Right pressed
        alert( "Right Arrow" );
        break;
    case "ArrowUp":
        // Up pressed
        alert( "Up Arrow" );
        break;
    case "ArrowDown":
        // Down pressed
        alert( "Down Arrow" );
        break;
}
</script>

Tags: keyeventnode评论scriptalertleftcase
1条回答
网友
1楼 · 发布于 2024-05-08 16:05:33

假设您想在整个页面上侦听keydown事件,您可以用JS中已经定义的document替换node。您还需要在事件侦听器的回调函数中移动switch语句,如下所示:

document.addEventListener("keydown", function(event) { event.preventDefault(); // prevent page from scrolling const key = event.key; // "ArrowRight", "ArrowLeft", "ArrowUp", or "ArrowDown" switch (key) { // change to event.key to key to use the above variable case "ArrowLeft": // Left pressed alert("Left Arrow"); break; case "ArrowRight": // Right pressed alert("Right Arrow"); break; case "ArrowUp": // Up pressed alert("Up Arrow"); break; case "ArrowDown": // Down pressed alert("Down Arrow"); break; } }); ; ^{pr2}$ ; ^{pr3}$ ;

解释:

本质上document表示整个页面。您可以向文档(即页面)中添加事件侦听器,以便在发生某些事情时执行函数。在我们的代码中,我们添加了一个keydown事件监听器,这意味着我们希望在按下某个键时执行一些代码。将要运行的代码是function(event) {...}中的代码。当一个事件发生时,我们可以从传递给触发函数的event参数中获得该事件的具体细节。我们可以从传递到函数中的event对象获得许多细节,其中一个就是被按下的key。在我们的代码中,我们使用evet.key按下键,然后将其存储在名为key的变量中。然后,我们使用switch语句检查按下了哪个键,如果出现了特定的键,则执行相关代码。你知道吗

相关问题 更多 >

    热门问题