Искренние извинения, если это уже было покрыто. Я тратил StackOverflow на некоторое время, и я не могу найти ничего, что исправит мою проблему. У многих людей есть эта ошибка, но их, похоже, вызывают ошибки синтаксиса и тому подобное. I (или JSLint) не может найти таких ошибок, поэтому я довольно тупой. Следующий код (со страницы W3Schools) делает работу:Uncaught ReferenceError: [functionName] не определен
<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>
<button onclick="myFunction()">Click me</button>
<p id="demo"></p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
</script>
Однако, мой код не работает:
<head>
<!--SNIP-->
<script language="text/javascript">
function iconclicked() {
alert("Yay!");
}
</script>
</head>
<body>
<div class="icon" id="misc" onclick="iconclicked()"></div>
</body>
Это производит "неперехваченным ReferenceError: iconclicked не определен" ошибка. Но, поправьте меня, если я ошибаюсь, function iconclicked() {...}
- это то, что определяет функцию, и она явно присутствует. Кроме того, перемещение JScript в тег <body>
не устраняет проблему, независимо от того, является ли сценарий до или после div. Если вы хотите заменить div на другой элемент (кнопку, изображение, текст и т. Д.) Или вызвать функцию другим способом (например, через onload), код не работает.
Я думал, что, возможно, это остальная часть кода на моей странице, вызвавшая что-то смешное, поэтому я направился к JSFIDDLE и вынул старый код W3Schools там. Вот и вот, «Uncaught ReferenceError: myFunction is not defined
». JSFDDLE link Edit: оказывается, это просто связано с тем, я не выбирал «не обертку» в опциях JSFIDDLE - спасибо Peter Хили :)
Но если вы идете вперед поставить JS внутри <script>
</script>
тегов в HTML-раздел JSFIDDLE, такой проблемы нет, и код работает так, как предполагалось. JSFIDDLE link
Я полагаю, что это проблема с охватом, но я не могу, чтобы жизнь меня определяла то, что конкретно. Надеюсь, у кого-то, у кого больше опыта, есть ответ!
Проблема Joe существует вне JSFiddle. Я скопировал и вставил код в JetBrains WebStorm и имел ту же проблему. Однако это в JSFiddle исправляет проблему JSFiddle. – alex
@alex меняет текст/javascript на javascript решает, что для меня –
Спасибо! Это как-то решает проблему, так как мой код теперь будет работать на JSFiddle, но он не работает на моем тестовом сайте:/ Он был скопирован дословно, со скриптом внутри заголовка, как на сайте JSFiddle, когда вы выбираете no-wrap, в новый документ, за исключением того, что он по-прежнему дает мне ссылку на Uncaught ReferenceError. – Joe