这是我认为应该起作用的方法,但并非如此。我正在使用Unicode 112的“p”键和115的“s”键。

var audio = document.getElementById("lessonTrack");
window.addEventListener("keypress", playPauseKb, false);

function playPauseKb() {
  var x = event.keycode;
  if (x == 112) {
    audio.play();
  }
  else if (x == 115) {
    audio.pause();
  }
}

最佳答案

你有正确的主意。我添加了一些调试步骤,以后可以使用这些步骤来帮助您排除代码故障。您只需要删除注释即可进行测试。我还向您的函数添加了缺少的事件参数。我将事件更改为按键,但是您可以选择使用另一个事件,但是某些键盘按钮将不响应按键事件。

您还应该尝试尽量避免使用===而不是==的习惯,这将有助于防止将来出现某些错误。 ==运算符将匹配值,但是===运算符将匹配值和类型。如果要确保您的值是字符串,数字等,这可能是个问题。

更新:您可能希望使用以下代码行代替原始行来检查firefox中的按键事件,因为它将为event.keyCode返回0。

//check to see which event property is supported
var x = event.which || event.keyCode;

JavaScript:
var audio = document.getElementById("lessonTrack");

window.addEventListener("keyup", playPauseKb, false);

function playPauseKb(event) {//<-- added missing event parameter


  var x = event.keyCode;

  //debug
  //console.log(x);

  //p on the keyboard
  if (x === 80) {

    audio.play();

    //alert("playing");

  } else if (x === 83) { //s button keycode

    audio.pause();

    //alert("paused");

  }
}

09-07 21:05
查看更多