多くのJavaScriptの新人は、このシンプルなラインから始まります。
アラート( "Hello、world");
ただし、ChromeがCodepenサポートチケットの急増によって証明されているように、クロムのクロスオリジンIframes内のalert()
機能の除去が広範囲にわたる問題を引き起こしました。この変更は、 confirm()
、 prompt()
、およびonbeforeunload
のような他のネイティブJavaScriptダイアログの非難に加えて、セキュリティのためにクロスオリジンのiframesに大きく依存するCodepenのようなWebサイトに大きく影響します。事前の警告の欠如がフラストレーションに追加されました。
セキュリティの懸念は理解できますが(JavaScriptダイアログは起源に関係なく同一に見えますが、ユーザーを混乱させる可能性があります)が、突然の変化はサンドボックスなどの既存のソリューションを見落としています。<iframe sandbox=""></iframe>
堅牢なセキュリティを提供し、特定の機能を選択的に有効にします(<iframe sandbox="allow-scripts allow-downloads ...etc"></iframe>
)。既存のallow-modals
属性は不十分であると思われ、より広い目標を示唆しています:WebプラットフォームからのJavaScriptダイアログの完全な削除。
この劇的な尺度は、無数のチュートリアルとアプリケーションを破壊します。クロスオリジンの制限は2022年1月まで遅れていますが、Chrome、Firefox、およびSafariがサポートする計画された完全な除去は非常に懸念されています。十分な開発者とユーザーの相談の欠如は、大きな批判です。
提案された代替、 postMessage
、いくつかの欠点を提示します。
postMessage
実行を停止せず、アプリケーションの流れを変更します。 window.alert = console.log
のようなよりシンプルな回避策は、同様の問題を共有します。
多くの開発者が懸念を表明しています:
alert()
のブロッキングの性質を機能として使用していることを指摘しています(たとえば、ゲームの一時停止)。ダン・アブラモフが強調しているように、クロスオリジンIFRAMEのこれらの関数を使用したページビューの0.006%の引用メトリックは誤解を招くものです。アカウント削除フローなどの重要な機能は頻繁にアクセスできないかもしれませんが、それでも不可欠です。
クリス・フェルディナンディとジェレミー・キースは、コミュニケーションの欠如とWeb開発への大きな影響をさらに強調しています。 Google内の一部の一部からの妥協の回答は、問題を悪化させるだけです。
Webの進歩に対するGoogleの貢献を認めながら、この批判は、開発者とユーザーのアウトリーチの欠如、影響と移行戦略の不十分な議論、および行動方針の調整に対する開放性の欠如に焦点を当てています。将来のWebプラットフォームの変更には、より多くの共同および透明なプロセスが重要です。
以上がJavaScriptダイアログの今後の非推奨についての選択語の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。