Home Web Front-end CSS Tutorial Choice Words about the Upcoming Deprecation of JavaScript Dialogs

Choice Words about the Upcoming Deprecation of JavaScript Dialogs

Mar 21, 2025 am 10:29 AM

Choice Words about the Upcoming Deprecation of JavaScript Dialogs

Many JavaScript newcomers start with this simple line:

alert("Hello, World");
Copy after login

However, Chrome's recent removal of alert() functionality within cross-origin iframes caused widespread issues, as evidenced by a surge in CodePen support tickets. This change, along with the deprecation of other native JavaScript dialogs like confirm(), prompt(), and onbeforeunload, significantly impacts websites like CodePen which rely heavily on cross-origin iframes for security. The lack of prior warning added to the frustration.

While security concerns are understandable (JavaScript dialogs appear identical regardless of origin, potentially confusing users), the abrupt change overlooks existing solutions like sandboxing. <iframe sandbox=""></iframe> provides robust security, allowing specific features to be enabled selectively (<iframe sandbox="allow-scripts allow-downloads ...etc"></iframe>). The existing allow-modals attribute seems insufficient, suggesting a broader goal: complete removal of JavaScript dialogs from the web platform.

This drastic measure would break countless tutorials and applications. Although the cross-origin restriction is delayed until January 2022, the planned complete removal, supported by Chrome, Firefox, and Safari, is deeply concerning. The lack of sufficient developer and user consultation is a major criticism.

The suggested alternative, postMessage, presents several drawbacks:

  1. Non-blocking behavior: Unlike JavaScript dialogs, postMessage doesn't halt execution, altering application flow.
  2. Code injection: Requiring developers to inject code into user code introduces technical debt and unexpected side effects (e.g., altering CSS selector behavior).
  3. Security risks: Passing user-generated data to the parent frame introduces potential XSS vulnerabilities.

Even simpler workarounds, like window.alert = console.log, share similar problems.

Many developers have voiced concerns:

  • Jaden Baptista: Suggests containing the alert within the iframe itself, improving both security and UX.
  • Matthew Phillips: Critiques the decision as prioritizing certain websites over others.
  • Dan Abramov: Expresses concern over the lack of respect for existing use cases and implementation complexity.
  • Ben Lesh: Points out that some applications use the blocking nature of alert() as a feature (e.g., pausing games).

The cited metric of 0.006% of page views using these functions in cross-origin iframes is misleading, as Dan Abramov highlights: critical functionalities, such as account deletion flows, might not be accessed frequently but are nonetheless essential.

Chris Ferdinandi and Jeremy Keith further emphasize the lack of communication and the significant impact on web development. The condescending responses from some within Google only exacerbate the issue.

While acknowledging Google's contributions to web advancement, the criticism focuses on the lack of developer and user outreach, insufficient discussion of implications and transition strategies, and a lack of openness to adjusting the course of action. More collaborative and transparent processes are crucial for future web platform changes.

The above is the detailed content of Choice Words about the Upcoming Deprecation of JavaScript Dialogs. 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

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.

Undress AI Tool

Undress AI Tool

Undress images for free

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)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

It&#039;s out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

Building an Ethereum app using Redwood.js and Fauna Building an Ethereum app using Redwood.js and Fauna Mar 28, 2025 am 09:18 AM

With the recent climb of Bitcoin’s price over 20k $USD, and to it recently breaking 30k, I thought it’s worth taking a deep dive back into creating Ethereum

Can you get valid CSS property values from the browser? Can you get valid CSS property values from the browser? Apr 02, 2025 pm 06:17 PM

I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That&#039;s like this.

Stacked Cards with Sticky Positioning and a Dash of Sass Stacked Cards with Sticky Positioning and a Dash of Sass Apr 03, 2025 am 10:30 AM

The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.

A bit on ci/cd A bit on ci/cd Apr 02, 2025 pm 06:21 PM

I&#039;d say "website" fits better than "mobile app" but I like this framing from Max Lynch:

Comparing Browsers for Responsive Design Comparing Browsers for Responsive Design Apr 02, 2025 pm 06:25 PM

There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing

Using Markdown and Localization in the WordPress Block Editor Using Markdown and Localization in the WordPress Block Editor Apr 02, 2025 am 04:27 AM

If we need to show documentation to the user directly in the WordPress editor, what is the best way to do it?

Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Apr 05, 2025 pm 05:51 PM

Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...

See all articles