Почему моя ошибка попытки улова не появляется? - PullRequest
0 голосов
/ 02 января 2019

Я нахожусь на JSFiddle и по какой-то причине сообщение об ошибке try-catch появляется только тогда, когда код JS находится внутри тегов на вкладке HTML, но когда он находится на отдельной вкладке JS, ошибка try-catch победила 't print.

Это будет работать:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  var message, x;
  message = document.getElementById("p01");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "")  throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5)  throw "too low";
    if(x > 10)   throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

Но это не так: https://jsfiddle.net/k0rrupt3d/rqejvzoc/

1 Ответ

0 голосов
/ 02 января 2019

Похоже, что раздел JS на скрипке имеет локальную область действия.Если вы измените объявление функции на window.myFunction = function() {, чтобы сделать его глобальным, оно будет функционировать, как и ожидалось.

...