亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table of Contents
Major Issues in Native JavaScript Popups
Accessibility
Common alternatives
Summarize
Home Web Front-end CSS Tutorial Comparing the Different Types of Native JavaScript Popups

Comparing the Different Types of Native JavaScript Popups

Apr 15, 2025 am 10:48 AM

Comparing the Different Types of Native JavaScript Popups

JavaScript provides a variety of built-in pop-up APIs for displaying special UIs for user interaction. The most common ones are:

 alert("Hello, World!");

The UI varies from browser to browser, but usually you will see a small window popping up to the center of the page in a very eye-catching way, containing the messages you pass. Here are examples of Firefox and Chrome:

Major Issues in Native JavaScript Popups

JavaScript popups are blocking .

When the pop-up opens, the entire page will actually stop running. During a pop-up, you can’t interact with anything on the page – that’s exactly what the “modal window” is about, but it’s still a user experience factor that you should pay close attention to. It is crucial that no other main thread JavaScript code runs when the popup opens, which may (and most likely) unnecessarily prevent your website from doing what it needs to do.

Nine out of ten times, it is best to redesign your architecture to avoid using this behavior that forces all operations to stop. The browser implements native JavaScript alerts, too, makes it impossible for you to control its design. You can't control where they are on the page or how they look there. Unless you absolutely need their total blocking features, it's almost always best to use a custom user interface that you can design to customize the experience for the user.

Let's take a look at each native pop-up window.

window.alert()

 window.alert("Hello World");

//Show message example const button = document.querySelectorAll("button");
button.addEventListener("click", () => {
  alert("button text:" button.innerText);
});

Purpose: Displays the value of a simple message or debug variable.

How it works: This function takes a string and presents it to the user in a pop-up window of a button with the OK label. You can only change the message, not any other aspect, such as text on the button.

Alternative: Like other alerts, if you have to display a message to the user, it is best to display it in a way that suits the action you are trying to perform.

If you are trying to debug the value of a variable, consider using console.log("變量的值:", variable); and view it in the console.

window.confirm()

 window.confirm("Are you sure?");

// Ask a sample let answer = window.confirm("Do you like cats?");
if (answer) {
  // The user clicked "OK"
} else {
  // The user clicked "Cancel"
}

Purpose: Used for "Are you sure?" type messages to see if the user really wants to complete the action they have started.

How it works: You can provide custom messages, the popup will provide the OK or Cancel option, and you can then use that value to view the returned content.

Alternative: This is a very intrusive way to prompt users. As Aza Raskin said:

… Maybe you don’t want to use warnings at all. ”

There are many ways to ask the user to confirm certain content. Probably a clear UI with a confirm button that connects to what you need it to do.

window.prompt()

 window.prompt("What is your name?");

let answer = window.prompt("What is your favorite color?");
// answer is what the user enters (if any)

Purpose: Prompt the user to enter. You provide a string (probably formatted as a problem) and the user will see a popup window containing the string, an input box that can be entered, and the OK and Cancel buttons.

How it works: If the user clicks "OK", you will get what they entered in the input box. If they don't type anything and click OK, you'll get an empty string. If they choose Cancel, the return value will be null.

Alternative: Like all other native JavaScript alerts, this also does not allow you to style or position the alert box. Best to use<input> Element to obtain user information. This way, you can provide more context and purposeful design.

window.onbeforeunload()

 window.addEventListener("beforeunload", () => {
  // The standard requires the cancellation of the default operation.
  event.preventDefault();
  // Chrome requires the setting of returnValue (via MDN)
  event.returnValue = '';
});

Purpose: Issue a warning before the user leaves the page. This may sound very annoying, but it is not often used annoyingly. It is used for websites where you may be working on and need to explicitly save it. If the user has not saved their work and is about to leave, you can use this method to warn them. If they have saved their work, you should delete it.

How it works: If you have attached the beforeunload event to the window (and performed other actions shown in the snippet above), when the user tries to leave the page, they will see a pop-up asking if they want to "leave" or "cancel". Leaving the site may be because the user clicked a link, but it may also be the result of clicking the browser refresh or back button. You cannot customize the message.

MDN warns that some browsers require interaction with the page to make it work:

To combat unwanted popups, some browsers do not display prompts created in the beforeunload event handler unless the page has interacted with it. Also, some browsers don't show them at all.

Alternative: Nothing can be thought of. If this is a problem with the user losing work, you have to use it. If they choose to stay, you should make it clear what they should do to make sure that leaving is safe.

Accessibility

Native JavaScript alerts used to be unpopular in the world of accessibility, but screen readers seem to be getting smarter in the way they are handled. According to Penn State’s accessibility guidelines:

The use of alert boxes was once not encouraged, but they are actually accessible in modern screen readers.

When creating your own modal window, be sure to consider accessibility, but there are some great resources (such as this post by Ire Aderinokun) that can point you in the direction.

Common alternatives

There are many alternatives to native JavaScript popups, such as writing your own popups, using modal window libraries, and using alert libraries. Remember that none of the things we introduced can completely prevent JavaScript execution and user interaction, but some can do this by greying the background and forcing the user to interact with the modal window before continuing.

You might want to see the native HTML<dialog></dialog> element. Chris recently conducted a practical study on it. It's attractive, but there are obviously some major accessibility issues. I'm not sure if it would be better or worse to build your own popups, as handling modal windows is a very important interactive element. Some UI libraries such as Bootstrap provide modal windows, but accessibility is still largely in your hands. You may want to check out projects like a11y-dialog.

Summarize

Using the built-in API of the web platform seems to be the right thing to do - instead of sending a lot of JavaScript code to copy the functionality, you use the functionality we already have built-in. However, there are serious limitations, user experience issues and performance issues that are not conducive to using native JavaScript popups. It is important to know what they are and how to use them, but you may not need them a lot in a production web site.

The above is the detailed content of Comparing the Different Types of Native JavaScript Popups. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1488
72
CSS tutorial for creating loading spinners and animations CSS tutorial for creating loading spinners and animations Jul 07, 2025 am 12:07 AM

There are three ways to create a CSS loading rotator: 1. Use the basic rotator of borders to achieve simple animation through HTML and CSS; 2. Use a custom rotator of multiple points to achieve the jump effect through different delay times; 3. Add a rotator in the button and switch classes through JavaScript to display the loading status. Each approach emphasizes the importance of design details such as color, size, accessibility and performance optimization to enhance the user experience.

Addressing CSS Browser Compatibility issues and prefixes Addressing CSS Browser Compatibility issues and prefixes Jul 07, 2025 am 01:44 AM

To deal with CSS browser compatibility and prefix issues, you need to understand the differences in browser support and use vendor prefixes reasonably. 1. Understand common problems such as Flexbox and Grid support, position:sticky invalid, and animation performance is different; 2. Check CanIuse confirmation feature support status; 3. Correctly use -webkit-, -moz-, -ms-, -o- and other manufacturer prefixes; 4. It is recommended to use Autoprefixer to automatically add prefixes; 5. Install PostCSS and configure browserslist to specify the target browser; 6. Automatically handle compatibility during construction; 7. Modernizr detection features can be used for old projects; 8. No need to pursue consistency of all browsers,

What is the difference between display: inline, display: block, and display: inline-block? What is the difference between display: inline, display: block, and display: inline-block? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:inline,block,andinline-blockinHTML/CSSarelayoutbehavior,spaceusage,andstylingcontrol.1.Inlineelementsflowwithtext,don’tstartonnewlines,ignorewidth/height,andonlyapplyhorizontalpadding/margins—idealforinlinetextstyling

Creating custom shapes with css clip-path Creating custom shapes with css clip-path Jul 09, 2025 am 01:29 AM

Use the clip-path attribute of CSS to crop elements into custom shapes, such as triangles, circular notches, polygons, etc., without relying on pictures or SVGs. Its advantages include: 1. Supports a variety of basic shapes such as circle, ellipse, polygon, etc.; 2. Responsive adjustment and adaptable to mobile terminals; 3. Easy to animation, and can be combined with hover or JavaScript to achieve dynamic effects; 4. It does not affect the layout flow, and only crops the display area. Common usages are such as circular clip-path:circle (50pxatcenter) and triangle clip-path:polygon (50%0%, 100 0%, 0 0%). Notice

Styling visited links differently with CSS Styling visited links differently with CSS Jul 11, 2025 am 03:26 AM

Setting the style of links you have visited can improve the user experience, especially in content-intensive websites to help users navigate better. 1. Use CSS's: visited pseudo-class to define the style of the visited link, such as color changes; 2. Note that the browser only allows modification of some attributes due to privacy restrictions; 3. The color selection should be coordinated with the overall style to avoid abruptness; 4. The mobile terminal may not display this effect, and it is recommended to combine it with other visual prompts such as icon auxiliary logos.

How to create responsive images using CSS? How to create responsive images using CSS? Jul 15, 2025 am 01:10 AM

To create responsive images using CSS, it can be mainly achieved through the following methods: 1. Use max-width:100% and height:auto to allow the image to adapt to the container width while maintaining the proportion; 2. Use HTML's srcset and sizes attributes to intelligently load the image sources adapted to different screens; 3. Use object-fit and object-position to control image cropping and focus display. Together, these methods ensure that the images are presented clearly and beautifully on different devices.

What are common CSS browser inconsistencies? What are common CSS browser inconsistencies? Jul 26, 2025 am 07:04 AM

Different browsers have differences in CSS parsing, resulting in inconsistent display effects, mainly including the default style difference, box model calculation method, Flexbox and Grid layout support level, and inconsistent behavior of certain CSS attributes. 1. The default style processing is inconsistent. The solution is to use CSSReset or Normalize.css to unify the initial style; 2. The box model calculation method of the old version of IE is different. It is recommended to use box-sizing:border-box in a unified manner; 3. Flexbox and Grid perform differently in edge cases or in old versions. More tests and use Autoprefixer; 4. Some CSS attribute behaviors are inconsistent. CanIuse must be consulted and downgraded.

Demystifying CSS Units: px, em, rem, vw, vh comparisons Demystifying CSS Units: px, em, rem, vw, vh comparisons Jul 08, 2025 am 02:16 AM

The choice of CSS units depends on design requirements and responsive requirements. 1.px is used for fixed size, suitable for precise control but lack of elasticity; 2.em is a relative unit, which is easily caused by the influence of the parent element, while rem is more stable based on the root element and is suitable for global scaling; 3.vw/vh is based on the viewport size, suitable for responsive design, but attention should be paid to the performance under extreme screens; 4. When choosing, it should be determined based on whether responsive adjustments, element hierarchy relationships and viewport dependence. Reasonable use can improve layout flexibility and maintenance.

See all articles