Не работает alert javascript

Javascript: Почему иногда alert () не работает, а console.log () работает?

Время от времени я сталкиваюсь с очень интригующей ошибкой. Мой javascript-код не отображает предупреждение (msg) во время выполнения, но если я использую console.log(msg), он отображается в консоли. Что может предотвратить отображение предупреждения()? Спасибо большое

в браузере Google Chrome нажмите Ctrl + Shift + I и проверьте ошибки, которые вы получаете. Если ошибка обнаружена, ваш следующий код (возможно, он может содержать предупреждение) не будет обнаружен

У меня была похожая проблема. В моем случае веб-браузер (Chrome) заблокировал окна предупреждений, потому что они часто показывались

5 ответов

Это очень распространенная проблема, и каждый столкнулся с этой проблемой по крайней мере один раз. Причина alert() не работает, потому что ранее вы отметили флажок «запретить эту страницу создавать дополнительные диалоги».

позволяет взглянуть на этот код.

  

Если вы запустите код, появится два окна оповещения. Если вы установите флажок «Запретить эту страницу создавать дополнительные диалоги», а затем снова обновите страницу, вы больше не будете получать оповещение.

Решение: вам нужно закрыть эту веб-страницу и снова открыть ее в браузере (не нужно закрывать весь браузер). Я предполагаю, что вы используете хром. Internet Explorer или FireFox не имеют этой функции.

Читайте также:  Webdevkin. Демонстрация виджета Погода

Источник

Не работает alert javascript

Last updated: Dec 28, 2022
Reading time · 4 min

banner

# Table of Contents

# ReferenceError: Alert is not defined in JavaScript

The «ReferenceError: alert is not defined» occurs when the alert() method is used outside of the browser environment, most commonly in Node.js.

The alert() method is a method on the window object, which is only available in the browser.

referenceerror alert is not defined

# Use console.log when outside the browser

To solve the «alert is not defined» error, use the console.log or console.error methods instead of alert when outside the browser.

The console.log and console.error methods allow us to output a message to the web console or standard output and error if you’re on the server side.

Copied!
console.log('hello'); console.error('an error occurred');

If you use a console.log() statement in a browser environment, open your developer tools by pressing F12 and click on the Console tab to view the output.

browser console

If you use a console.log() statement on the server, look at your terminal to view the output if you have a server running or run your script with node yourScript.js and then look at your terminal.

# Checking if you are on the browser or the server

If you got the error in a browser, you might be using server-side rendering (e.g. with Next.js), or you might have misspelled alert (all lowercase).

If you got the error when using server-side rendering, you can conditionally check if you’re on the browser (can use alert ) or you are on the server (can’t use alert ).

Copied!
if (typeof window !== 'undefined') console.log('You are on the browser') // 👉️ can use alert() > else console.log('You are on the server') // 👉️ can't use alert() >

In our if statement, we check if the window global variable is not undefined . If it is defined, we can use the alert method.

Copied!
console.log(alert === window.alert); // 👉️ true

If we check whether alert is equal to window.alert in a browser environment, we get true back.

The window global variable represents the window that contains the DOM (browser side only).

An easy way to think about it is that in a browser, each tab is represented by its own Window object.

# ReferenceError: Prompt is not defined in JavaScript

You might also get the ReferenceError: Prompt is not defined error when you try to use the prompt() method outside the browser.

To resolve the issue, check if you are on the browser before calling window.prompt() or use the prompt-sync package.

referenceerror prompt is not defined

Here is an example of how the error occurs.

Copied!
const result = prompt('What is your favorite number?'); console.log(result);

If you issue the node index.js command, I get the following error:

Copied!
ReferenceError: prompt is not defined

The error is caused because the prompt method is available on the window object and not in Node.js.

The prompt() method is used to display a dialog with a message in the browser and prompt the user to enter some text.

The method returns a string containing the text that was entered by the user or null if the user didn’t enter any text.

# Checking if you are on the Browser

If you use Next.js or other similar client and server-side technologies, you can check if you are on the browser or the server using the typeof operator.

Copied!
if (typeof window !== 'undefined') const result = prompt('What is your favorite number?'); console.log(result); >

Since the prompt() method is only available on the browser, we first check if the window variable is defined.

If the variable is defined, we can safely call the method.

In all other cases, we are on the server, so trying to call the window.prompt() method would raise a ReferenceError .

# Using the prompt() method on the server in Node.js

You can use a third-party package to be able to use the prompt() method in Node.js.

Copied!
# with NPM npm install prompt-sync # or with YARN yarn add prompt-sync
Copied!
// using ES6 import statement import createPrompt from 'prompt-sync'; const prompt = createPrompt(); const result = prompt('What is your favorite number: '); console.log(result);

If you use the older require() syntax, import the prompt-sync module as follows.

Copied!
// using commonJS require() statement const createPrompt = require('prompt-sync'); const prompt = createPrompt(); const result = prompt('What is your favorite number: '); console.log(result);

The prompt-sync package enables us to use the prompt() method in a Node.js environment.

You can read more about the module’s API and its configuration options in its NPM Readme page.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

Почему функция не выводит alert?

delphinpro

Сергей: в том то и дело, что в обьекте не существует значения data, но существуют data0, data1, data2 и т.д.
console.log(JSON.parse(xhr.responseText).data));
этот скрипт рабочий, если мы хотим одной функцией всего одно значение всегда выводить,
а как сделать, чтобы в нём к data прибавить count и на выходе каждый раз мы получали
console.log(JSON.parse(xhr.responseText).data0));
потом data1, data2

delphinpro

var response = JSON.parse(xhr.responseText), i; for (i in response)

delphinpro

delphinpro

var response = JSON.parse(xhr.responseText), i; for (i=0; i

Ingernirated

Потому, что есть разница между данными и кодом. В вашей «z» хранится строка alert(«hello100»), и после выполнения move() она уничтожается.

var x = 100; function move() < alert("hello" + x); >move();
var x = 100; function move() < var z = "alert(hello" + x + ");"; return z; >var y = move(); eval(y);

Но второго способа лучше избегать, т.к. он довольно рисковый в плане безопасности. Про то, почему eval is evil довольно много статей написано.

Источник

Почему в браузере не отображается алерт?

5dd09d4d77cfb219728271.png

Дано:
Проект на node.js.
В нем три файла: «app.js» — он создает и запускает сервер, также отображает страницу «index.html».
«index.html» — он ссылается другой js файл — «index.js».
В «index.js», в свою очередь есть строка «alert(«something»);»
Вопрос: почему в браузере алерт не отображается? С серваком и прочим всё нормально

Однако когда пишешь вот так (прям в «index.html»):

всё работает

Простой 14 комментариев

Для начала убедись, что index.js успешно подгружается — F12 > вкладка Network
Потому убедись, что в index.js нет ошибок — F12 > вкладка Console

Сергей, странно, он не видит index.js, но я создал новый файл indexx.js уже не в этой папке. и ему там не нравится первая строка все время5dd0b236735a6457103299.png 5dd0b260a3808830733365.png

5dd0b2c2d2430712979934.png

Сергей, хотя он вобще выглядит вот так. это index.html так выглядит как показывает отладчик

like-a-boss

Vyacheslav_Shilov, Тебе виднее, что ты там чудишь. Но факт в том, что у тебя в indexx.js хэтэмээл на самом деле, а не то, что ты думаешь.

5dd0b8857574e556052258.png

like-a-boss, нука может в этом файле дело? если ты не просто поумничать пришел а помочь

like-a-boss

5dd0d2f45a474310506962.png@imnotwhoexpect, 5dd0d24e34b34085063631.png
ему пофиг вобще на структуру моего проекта, ему какую папку не укажешь, хоть абсолютную хоть относительную, он ее в браузере с файлом создаст и там будет думать что в этом файле-js html-код. остальные файлы которые у меня в проекте он не видит

Даниил Чашков, да ему вобще все равно, он создает в браузере новый файл js в новой папке, с содержимым html, и это никак не связано с проектом

like-a-boss

Vyacheslav_Shilov, не плоди новых сущностей, создавая новые файлы.
Попробуй понять почему он не видит index.js, по какому адресу он пытается это index.js загрузить.
Попробуй загружать этот index.js по разному: src=»https://qna.habr.com/index.js», src=»https://qna.habr.com/q/public/index.js» , src=»https://qna.habr.com/public/index.js» и т.д. и т.п.
Попробуй перенести этот index.js на уровень вверх.
Убедись в том, что он 100% загружается.
После этого надо смотреть дальше — нет ли в нем самом ошибок.
В конце концов скинь этот весь код на гитхаб или куда-то еще, чтобы его можно было посмотреть и т.д. А то гадать можно до бесконечности.

5dd1663b0daaf873384401.png

like-a-boss, а почему вот так не работает? всмысле опять indexx.js, сам сервер работает

Источник

Alert не выводит данные внутри function?

Добрый день. Начинаю разбираться с java script. Не выводятся i и j с помощью alert во время запуска скрипта в браузере. Не подскажете почему?

function count() < // переменные i,j не будут уничтожены по окончании цикла for (var i = 0; i < 3; i++) < var j = i * 2; >alert( i ); // i=3, последнее значение i, при нём цикл перестал работать alert( j ); // j=4, последнее значение j, которое вычислил цикл >

roamn

Здравсвуйте.
Область видимости переменных, которые вы создали ограничивается функцией, за ее пределами эти переменные не существуют.

Объявите переменные до функции.

Здравствуйте. Спасибо за ответ.
Но я пытаюсь вывести переменные в пределах функции. Разве js не должен вывести их в таком случае?

roamn

Извините — проглядел.
Вот https://jsfiddle.net/1jmLywv2/1/ ваша функция. Может вы ее не вызываете?

Да ее.
После закрывающей функцию фигурной скобки вы вывели count();
После этого все отработало, так как и должно было.
Я занимаюсь по урокам на learn.javascript.ru. На уроке функция оформлена так как я привел и не работает. Так как вы привели — работает.
После объявления функции обязательно нужно вывести так как сделали вы — после закрывающей функцию фигурной скобки — count();?
Это обязательный синтаксис функции?

Tipch, ну так пока вы функцию не вызовете, она и не сработает. Она будет объявлена, но внутри неё ничего происходить не будет, до тех пор, пока не вы к ней не обратитесь

count(); — это и есть вызов функции?
Если программа большая везде где я буду его ставить — функция будет отрабатывать. Без этого ничего происходить не будет. Я ее просто объявил, чтобы она сработала, теперь к ней нужно обратиться.
Правильно?

Источник

Оцените статью