Alert is not defined javascript ошибка

5b33eb9db8525228261375.png
Простой код, но не могу понять в чем проблема. Пробовал писать подобное в консоли браузера и в другоv редакторе проблем не было, но хотелось бы работать с Brackets но именно с ним проблема. С console.log и document.write так же ошибка. В чем может быть проблема? Заранее спасибо.


  • Вопрос задан

    более трёх лет назад

  • 5290 просмотров


Комментировать


Решения вопроса 1

Vlad_IT

Это JSLint капризничает. Нужно в его конфиг установить параметр devel: true
Я не знаю. как в Brackets ставится этот конфиг, можно поставить конфигуратор https://github.com/georapbox/brackets-JSLint-Confi… там есть пункт Assume -> console, alert
Или зайдите в Debug -> Open Preferences и туда добавьте

"jslint.options": {
    "devel": true
  }

Ну или просто в начало вашего js файла
/*jslint es6:true*/

Пригласить эксперта


Ответы на вопрос 1

profesor08

Вполне возможно там стоит конфигурация под node.js, а там нету алертов.


Комментировать


Похожие вопросы


  • Показать ещё
    Загружается…

21 июн. 2023, в 16:55

5000 руб./за проект

21 июн. 2023, в 16:27

10000 руб./за проект

21 июн. 2023, в 15:55

3000 руб./за проект

Минуточку внимания

Решил попытать счастья в js, но текстовый редактор мне подсовывает ошибку …

alert("text")
^
ReferenceError: alert is not defined
    at Object.<anonymous> (e:Codescript:1:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
    at node:internal/main/run_main_module:17:47

Как это исправить и запустить код через node.js ?

задан 19 авг 2021 в 13:25

user409986's user avatar

2

Функцию alert() предоставляет только среда исполнения JavaScript в браузерах. Попробуйте console.log("text"), она есть и в браузерах, и в Node.js. Только выводит она текст не в диалоговом окне, а в консоли (в браузерной консоли в DevTools или в обычной системной консоли).

ответ дан 19 авг 2021 в 13:37

vsemozhebuty's user avatar

vsemozhebutyvsemozhebuty

14.1k2 золотых знака10 серебряных знаков20 бронзовых знаков

2

Анатолий Шевченко

Здравствуйте. почему выдаёт ошибку: alert is not defined?

https://ru.hexlet.io/code_reviews/267730


5


0

Maksim Litvinov

Так потому что функция alert у вас не определена


0

Анатолий Шевченко

а как мне ее определять? я же когда число в строку преобразую ничего не объявляю?
Максим Литвинов,


0

Sergei Melodyn

Анатолий Шевченко, приветствую.

Если планировалось использовать вывод на экран, то необходимо использовать console.log для отладки.


0

Maksim Litvinov

Если вы хотите преобразовать строку обратно в число, то для этого используется функция Number(value). Alert используется для вывода предупреждения в браузере


1

Анатолий Шевченко

Максим Литвинов, понял, благодарю


0

Используйте Хекслет по-максимуму!


  • Задавайте вопросы по уроку

  • Проверяйте знания в квизах

  • Проходите практику прямо в браузере

  • Отслеживайте свой прогресс

Зарегистрируйтесь или
войдите в свой аккаунт

Рекомендуемые программы

профессия


от 6 300 ₽ в месяц

Разработка фронтенд-компонентов для веб-приложений

профессия


от 5 025 ₽ в месяц

Сбор, анализ и интерпретация данных

профессия


от 6 300 ₽ в месяц

Разработка веб-приложений на Django

профессия


от 6 300 ₽ в месяц

Разработка приложений на языке Java

профессия


от 6 300 ₽ в месяц

Разработка веб-приложений на Laravel

профессия


от 6 183 ₽ в месяц

Ручное тестирование веб-приложений

профессия


от 6 300 ₽ в месяц

Разработка бэкенд-компонентов для веб-приложений

профессия


от 10 080 ₽ в месяц

Разработка фронтенд- и бэкенд-компонентов для веб-приложений

профессия


от 5 840 ₽ в месяц

Создание веб-приложений со скоростью света

Верстка с использованием последних стандартов CSS

профессия


от 6 300 ₽ в месяц

Автоматизированное тестирование веб-приложений на JavaScript

в разработке

дата определяется

I want to use windows.location.href

import { Component, OnInit, Inject } from "@angular/core";
import { WINDOW, LOCAL_STORAGE } from "@ng-toolkit/universal";

export class AppComponent implements OnInit {
  constructor(
    @Inject(WINDOW) private window: Window,
    @Inject(LOCAL_STORAGE) private localStorage: any
  ) {}

  ngOnInit(): void {
    alert(this.window.location.href);
  }
}

the problem is I get the following error in the terminal of vscode:

ERROR ReferenceError: alert is not defined
at AppComponent.ngOnInit (K:univerprodistserver.js:119317:9)
at checkAndUpdateDirectiveInline (K:univerprodistserver.js:90736:19)
at checkAndUpdateNodeInline (K:univerprodistserver.js:102070:20)
at checkAndUpdateNode (K:univerprodistserver.js:102009:16)
at prodCheckAndUpdateNode (K:univerprodistserver.js:102863:5)
at Object.updateDirectives (K:univerprodistserver.js:158381:291)
at Object.updateDirectives (K:univerprodistserver.js:102483:39)
at Object.checkAndUpdateView (K:univerprodistserver.js:101974:14)
at ViewRef_.detectChanges (K:univerprodistserver.js:90035:22)
at core_ApplicationRef.tick (K:univerprodistserver.js:98936:22)

But when I alert the windows.location.href everything works great.

Where is my problem?

My Package.Json


{
  "name": "univerpro",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "compile:server": "webpack --config webpack.server.config.js --progress --colors",
    "serve:ssr": "node local.js",
    "build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
    "build:client-and-server-bundles": "ng build --prod && ng run univerpro:server:production --bundleDependencies all",
    "server": "node local.js",
    "build:prod": "npm run build:ssr",
    "serve:prerender": "node static.js",
    "build:prerender": "npm run build:prod && node dist/prerender.js"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.13",
    "@angular/common": "~8.2.13",
    "@angular/compiler": "~8.2.13",
    "@angular/core": "~8.2.13",
    "@angular/forms": "~8.2.13",
    "@angular/platform-browser": "~8.2.13",
    "@angular/platform-browser-dynamic": "~8.2.13",
    "@angular/platform-server": "~8.2.13",
    "@angular/router": "~8.2.13",
    "@ng-toolkit/universal": "^8.0.3",
    "@nguniversal/express-engine": "8.1.1",
    "@nguniversal/module-map-ngfactory-loader": "8.1.1",
    "express": "^4.15.2",
    "rxjs": "~6.4.0",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1",
    "@nguniversal/common": "8.1.0",
    "domino": "^2.1.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.18",
    "@angular/cli": "~8.3.18",
    "@angular/compiler-cli": "~8.2.13",
    "@angular/language-service": "~8.2.13",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-loader": "^5.2.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.5.3",
    "webpack-cli": "^3.1.0"
  }
}

Старый

26.01.2018, 22:14

Новичок на форуме

Отправить личное сообщение для J L

Посмотреть профиль

Найти все сообщения от J L

 

Регистрация: 26.01.2018

Сообщений: 3

alert не работает.

только начала разбираться с java script и застряла на простом примере.
HTML файл

<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<title>Document</title>
<script src=»1.js» defer></script>
</head>
<body>
<p>
vvedite cislo: <input type=»text» id=»inp1″>
<button onclick=»pow2()»>Kvadrat</button>
</p>
</body>
</html>

Java script file
function pow2(){
alert(document.getElementByID(‘inp1’).value*docume nt.getElementByID(‘inp1’).value));

почему alert не всплывает?



Последний раз редактировалось J L, 26.01.2018 в 22:31.

Ответить с цитированием

Старый

26.01.2018, 22:34

Новичок на форуме

Отправить личное сообщение для J L

Посмотреть профиль

Найти все сообщения от J L

 

Регистрация: 26.01.2018

Сообщений: 3

error is not defined

‘pow2’ is defined but never used
‘document’ is not defined
‘alert’ is not defined

как разобраться с этими эрорами?

Ответить с цитированием

Старый

26.01.2018, 23:04

Аватар для рони

Профессор

Отправить личное сообщение для рони

Посмотреть профиль

Найти все сообщения от рони

 

Регистрация: 27.05.2010

Сообщений: 32,587

J L,
много ) и мало }

Ответить с цитированием

Старый

26.01.2018, 23:06

Аватар для рони

Профессор

Отправить личное сообщение для рони

Посмотреть профиль

Найти все сообщения от рони

 

Регистрация: 27.05.2010

Сообщений: 32,587

Ответить с цитированием

Старый

26.01.2018, 23:07

Аватар для рони

Профессор

Отправить личное сообщение для рони

Посмотреть профиль

Найти все сообщения от рони

 

Регистрация: 27.05.2010

Сообщений: 32,587

J L,

<!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script> function pow2(){
 alert(document.getElementById('inp1').value*document.getElementById('inp1').value);}</script>
 </head>
 <body>
 <p>
 vvedite cislo: <input type="text" id="inp1">
 <button onclick="pow2()">Kvadrat</button>
 </p>
 </body>
 </html>

Ответить с цитированием

Старый

26.01.2018, 23:16

Новичок на форуме

Отправить личное сообщение для J L

Посмотреть профиль

Найти все сообщения от J L

 

Регистрация: 26.01.2018

Сообщений: 3

cпасибо, а с эрроры игнорировать, ведь с ними работает же

Ответить с цитированием

Старый

26.01.2018, 23:22

Аватар для рони

Профессор

Отправить личное сообщение для рони

Посмотреть профиль

Найти все сообщения от рони

 

Регистрация: 27.05.2010

Сообщений: 32,587

J L,
моя твоя не понимать

Ответить с цитированием

При программировании в JavaScript, jQuery или Angular JS кодеры очень часто натыкаются на «Uncaught ReferenceError is not defined». Как правило, это происходит когда $, будь она переменной или методом, была задействована, но не была корректно определена. В сегодняшней статье мы посмотрим с вами на различные причины появления ошибки и методы их решения.

Содержание

  • Uncaught ReferenceError is not defined — что это такое?
  • Что вызывает появление ошибки
  • 1. Библиотека jQuery была загружена некорректно
  • 2. jQuery повреждена
  • 3. jQuery не была загружена перед кодом JavaScript
  • 4. Файл JqueryLibrary имеет атрибуты async или defer
  • 5. Конфликт с другими библиотеками (prototype.js, MooTools или YUI)
  • 6. Проблемы с плагином jQuery в WordPress
  • Заключение

Uncaught ReferenceError is not defined — что это такое?

Uncaught ReferenceError is not defined

Как мы упомянули ранее, символ $ может использоваться для определения функции. Самая распространенная функция jQuery() называется $(document).ready(function()). Например

jQuery(“#name”).hide()

$(“#name”).hide()

Код выше применяется для скрытия элемента с помощью id=”name” через метод hide(). Во второй строчке вы можете видеть, что символ $ используется вместо метода jQuery(). 

Ошибка возникает тогда, когда вы пытаетесь получить доступ или использовать метод/переменную без символа $. При выполнении JavaScript в браузере перед пользователем вылетает ошибка, а все потому, что переменная не была определена (a variable being used is not defined). Вам необходимо задать переменную через var.

Вам также нужно определить функцию с помощью function() {}, чтобы избежать этой же ошибки.

Что вызывает появление ошибки

Давайте взглянем на другие причины появления рассматриваемой ошибки:

  • Библиотека jQuery была загружена некорректно либо повреждена.
  • Файл библиотеки jQuery был загружен после JavaScript.
  • У библиотеки JavaScript имеются атрибуты async или defer.
  • Конфликт с другими библиотеками, например, prototype.js, MooTools или YUI.
  • Проблемы с плагином jQuery в WordPress.

1. Библиотека jQuery была загружена некорректно

Uncaught ReferenceError is not defined возникает в том случае, когда к методу jQuery был сделан запрос, но jQuery не была загружена на то время. Предположим, что вы работали без сети, но попытались загрузить или сослаться на код jQuery из Интернета, доступа к которому у вас нет, а следовательно jQuery не будет работать. Вы увидите ошибку, если исходник вашего кода находится на Google CDN, но последняя недоступна.

Лучшее решение в данном случае — это проверить сетевое подключение перед выполнением скрипта. Как альтернатива, вы можете загрузить файлы jQuery на свою систему и включить их непосредственно в сам скрипт. Для этого воспользуйтесь следующей строчкой:

<script src=”/js/jquery.min.js”></script>

2. jQuery повреждена

Если с файлом библиотеки jQuery наблюдаются какие-то проблемы, то, разумеется, появление ошибки неудивительно. Зачастую такая ситуация складывается тогда, когда пользователь загружает библиотеки из непроверенного источника. Возможно, на последнем jQuery выложена в уже поврежденном виде. Не экспериментируйте, а скачайте ее с официального сайта.

3. jQuery не была загружена перед кодом JavaScript

jQuery не была загружена перед скриптом. Если не сделать все как положено, скрипт, написанный в JavaScript, не будет работать — гарантированы постоянные ошибки.

Пример:

<html><head>
<script type=”text/javascript”>
$(document).ready(function () {
$(‘#clickme’).click(function(){
alert(“Link clicked”);
});
});
</script>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js” ></script>
</head>
<body>
<a href=”#” id=”clickme”>Click Here</a>
</body>
</html>

В этом коде jQuery загружен после скрипта. Так делать не нужно, а нужно вот так:

<html><head>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js” ></script>
<script type=”text/javascript”>
$(document).ready(function () {
$(‘#clickme’).click(function(){
alert(“Link clicked”);
});
});
</script>
</head><body>
<a href=”#” id=”clickme”>Click Here</a>
</body></html>

4. Файл JqueryLibrary имеет атрибуты async или defer

async — это булевый (логический) атрибут. При взаимодействии с атрибутом происходит загрузка скрипта с его последующим выполнением. Если парсер HTML не заблокирован во этого процесса, рендеринг странички будет ускорен.

Без атрибута async файлы JavaScript будут выполняется последовательно. Файлы JC будут загружены и запущены, затем начнется выполнение другого кода. В это время парсер HTML будет заблокирован и рендеринг веб-странички будет замедлен.

В случае атрибута defer скрипт будет выполнен после парсинга страницы. Это также булевый атрибут, который задействуется параллельно со внешними скриптами. Вот вам небольшой пример:

<!doctype html>
<html><head>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js” async defer></script>
<script type=”text/javascript”>
$(document).ready(function () {
$(‘#clickme’).click(function(){
alert(“Link clicked”);
});

});
</script>
</head>
<body>
<a href=”#” id=”clickme”>Click Here</a>
</body>
</html>

Именно вышеуказанные атрибуты обеспечивают асинхронную загрузку библиотеки jQuery. Чтобы избежать появления Uncaught ReferenceError is not defined, нужно избавиться от атрибутов async и defer в скрипте.

5. Конфликт с другими библиотеками (prototype.js, MooTools или YUI)

Символ $ используется как шорткат для jQuery. Поэтому, если вы используете другие библиотеки JavaScript, которые задействуют переменные $, вы можете наткнуться на рассматриваемую ошибку. Чтобы исправить проблему, вам нужно перевести jQuery в неконфликтный режим после ее загрузки. Небольшой пример:

<!– Putting jQuery into no-conflict mode. –>
<script src=”prototype.js”></script>
<script src=”jquery.js”></script>
<script>
var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.
$j(document).ready(function() {
$j( “div” ).hide();
});
// The $ variable now has the prototype meaning, which is a shortcut for
// document.getElementById(). mainDiv below is a DOM element, not a jQuery object.
window.onload = function() {
var mainDiv = $( “main” );
}
</script>

В коде выше $ ссылается на свое оригинальное значение. Вы сможете использовать $j и название функции jQuery.

Но есть еще одно решение! Вы можете добавить этот код в шапку своей странички индекса:

<script>
$=jQuery;
</script>

Корректный код:

<!doctype html>
<html><head>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js”></script>
<script type=”text/javascript”>
$(document).ready(function () {
$(‘#clickme’).click(function(){
alert(“Link clicked”);
});
});
</script>
</head>
<body>
<a href=”#” id=”clickme”>Click Here</a>
</body>
</html>

6. Проблемы с плагином jQuery в WordPress

Uncaught ReferenceError is not defined — настоящий кошмар для веб-разработчиков, использующих jQuery в WordPress. Появление ошибки способно полностью вывести из строя сайт. Главная причина — это конфликт между двумя или более плагинами jQuery. Например, есть старая версия плагина на jQuery, у которого $ — его имя, и какой-то сторонний плагин, который не использует $ в качестве шортката для jQuery и может иметь совершенно другое значение.

И вот из-за такой разницы и получается конфликт. Два значения $, отвечающих за совершенно разные вещи, не могут сосуществовать в одной программе. Вы гарантированно получите ошибку.

Решение: 

  • Убедитесь, что библиотека jQuery загружена перед JavaScript. Плюс постарайтесь использовать наиболее актуальную версию jQuery.
  • Библиотека jQuery уже доступна в WordPress, так что вам не нужно прикладывать ее с помощью CDN/URL. Вы можете использовать функцию wp_enqueue_script(), чтобы включить jQuery в ваш файл.

Заключение

Появления Uncaught ReferenceError is not defined можно избежать, если придерживаться всего, что мы указали выше. Еще одна причина появления ошибки — это неправильно указанный путь к jQuery. Возможно, в расположении файла где-то есть опечатка либо сам файл был перемещен/удален из своей оригинальной директории. Если же используете онлайн-версию библиотеки, убедитесь, что с вашим сетевым подключением все в порядке.

I want to use windows.location.href

import { Component, OnInit, Inject } from "@angular/core";
import { WINDOW, LOCAL_STORAGE } from "@ng-toolkit/universal";

export class AppComponent implements OnInit {
  constructor(
    @Inject(WINDOW) private window: Window,
    @Inject(LOCAL_STORAGE) private localStorage: any
  ) {}

  ngOnInit(): void {
    alert(this.window.location.href);
  }
}

the problem is I get the following error in the terminal of vscode:

ERROR ReferenceError: alert is not defined
at AppComponent.ngOnInit (K:univerprodistserver.js:119317:9)
at checkAndUpdateDirectiveInline (K:univerprodistserver.js:90736:19)
at checkAndUpdateNodeInline (K:univerprodistserver.js:102070:20)
at checkAndUpdateNode (K:univerprodistserver.js:102009:16)
at prodCheckAndUpdateNode (K:univerprodistserver.js:102863:5)
at Object.updateDirectives (K:univerprodistserver.js:158381:291)
at Object.updateDirectives (K:univerprodistserver.js:102483:39)
at Object.checkAndUpdateView (K:univerprodistserver.js:101974:14)
at ViewRef_.detectChanges (K:univerprodistserver.js:90035:22)
at core_ApplicationRef.tick (K:univerprodistserver.js:98936:22)

But when I alert the windows.location.href everything works great.

Where is my problem?

My Package.Json


{
  "name": "univerpro",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "compile:server": "webpack --config webpack.server.config.js --progress --colors",
    "serve:ssr": "node local.js",
    "build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
    "build:client-and-server-bundles": "ng build --prod && ng run univerpro:server:production --bundleDependencies all",
    "server": "node local.js",
    "build:prod": "npm run build:ssr",
    "serve:prerender": "node static.js",
    "build:prerender": "npm run build:prod && node dist/prerender.js"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.13",
    "@angular/common": "~8.2.13",
    "@angular/compiler": "~8.2.13",
    "@angular/core": "~8.2.13",
    "@angular/forms": "~8.2.13",
    "@angular/platform-browser": "~8.2.13",
    "@angular/platform-browser-dynamic": "~8.2.13",
    "@angular/platform-server": "~8.2.13",
    "@angular/router": "~8.2.13",
    "@ng-toolkit/universal": "^8.0.3",
    "@nguniversal/express-engine": "8.1.1",
    "@nguniversal/module-map-ngfactory-loader": "8.1.1",
    "express": "^4.15.2",
    "rxjs": "~6.4.0",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1",
    "@nguniversal/common": "8.1.0",
    "domino": "^2.1.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.18",
    "@angular/cli": "~8.3.18",
    "@angular/compiler-cli": "~8.2.13",
    "@angular/language-service": "~8.2.13",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-loader": "^5.2.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.5.3",
    "webpack-cli": "^3.1.0"
  }
}

Возможно, вам также будет интересно:

  • Alert irruption ошибка терминала что делать ingenico
  • Alert irruption ошибка терминала сбербанка
  • Alert irruption ошибка терминала перевод
  • Alert irruption ошибка терминала как исправить ошибку
  • Alert irruption ошибка терминала ingenico ict220

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии