問題タブ [progressive-enhancement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
369 参照

php - php & jquery: プログレッシブ エンハンスメント

データの送信に使用されるフォームを含むいくつかの php ページがあります。私の典型的なセットアップは、入力を検証し、必要に応じてユーザーが送信したデータ (およびエラーの場所を示すマークアップ) でページをリロードできるように、ページをそれ自体にポストすることです。すべて問題なければ、サンキュー ページにリダイレクトします。

フォームを送信するために ajax (jquery) の使用を開始したいのですが、クライアントが JavaScript を使用していない場合に備えて、元の php 送信をフォールバックさせます。私はまだjqueryに非常に慣れていないため、jqueryを使用して送信する例をいくつか見つけましたが、上記のセットアップを使用した例はありません. 可能であれば、誰かが簡単な例を挙げたり、そうしているページを指摘したりできます. ありがとう

0 投票する
2 に答える
50 参照

localization - すべての代替ブラウザのローカライズされた概要を提供するサイトはありますか

IE6の訪問者にcss(プログレッシブエンハンスメント)が制限されたサイトを表示しますが、最新のブラウザーにアップグレードできる/アップグレードする必要があることを通知するヘッダーを穏やかに表示することもできます。ie6nomoreのように、まさにそれを行うイニシアチブがあります。ただし、最新のブラウザとヘッダーテキストのリストはハードコーディングされています。
私のサイトはローカライズされているので、外部のWebサイトへのリンクがあります。このリンクは、ブラウザーの言語を自動検出し、最新のブラウザーを独自の言語で通知します。
そうすれば、私の「アドバイス」は常に最新で完全にローカライズされます。

0 投票する
4 に答える
976 参照

progressive-enhancement - box-shadow によるプログレッシブ エンハンスメント

ちょっとしたドロップダウンに WebKit の box-shadow css プロパティを使用したいと思います。コードは次のようになります。

ただし、この機能を備えていないブラウザーの場合、次のように境界線を使用してこのドロップ シャドウを近似したいと考えています。

問題は、box-shadow をサポートしているブラウザーにボーダーベースの影を表示させたくないということです。すべてのケースをカバーするのは難しいと思われるため、ブラウザ スニッフィングは避けたいと思います。これを行う最も簡単な方法は何ですか? 私は JavaScript を使用しないソリューションを好みますが、単純な JavaScript ベースのソリューションも検討します。

0 投票する
9 に答える
1134 参照

javascript - サイトの訪問者が JavaScript を無効にしている場合はどうしますか?

サイト訪問者が JavaScript を無効にしたらどうしますか? それらをブロックしますか?

0 投票する
1 に答える
1919 参照

html - 1万の可能な値とシーケンスで重要なドロップダウンと優雅な劣化のドロップダウン

バックグラウンド

私は、javascriptを排他的に使用して最大5,000エントリ(サプライヤ)を検索し、それらから選択したドロップダウン(工場、最大10,000エントリ)を入力するこのフォームを持っています。現在、これはjavascriptが必要なフォームです。javascriptエラーによってフォームが使用できなくなることがないようにしたいと思いますが、エントリの数とエントリのシーケンシャルな性質により、基本的なhtmlバージョンだけを提供する慣用的な方法がありません。

問題


順次/階層ドロップダウン

シーケンスが重要なドロップダウンの例: http ://www.javascriptkit.com/javatutors/selectcontent2.shtml

これは、順次/階層ドロップダウンコンテンツの「フィルタリング」を示しています。ここで、2番目のCityドロップダウンの選択は、最初のCountryドロップダウンの選択に基づいてフィルタリングされます。しかし、JavaScriptを削除すると、すぐに混乱する可能性があります。アメリカのマドリッド?フランスのベルリン?シーケンスが破損します。

膨大な数のオプションがあるドロップダウン

10kの可能なオプションを含む選択ドロップダウンがある場合、javascriptを使用してそれらをフィルタリング/検索するのは非常に簡単です。一方、javacriptを使用せずにこれらのオプションを処理することは、はるかに困難です。

すべてのオプションをロードするだけでブラウザが爆発する場合、どのようにしてすべての可能性をユーザーに提供しますか?


可能な解決策

順次/階層選択ボックス:

  • サーバー側の2部構成のフォーム。
  • ?オプショングループを選択しますか?
  • ???

膨大な数のオプションで選択:

  • サーバー側の2部構成の検索フォーム。
  • エントリ名のサーバー側テキスト検索マッチング。
  • ???

機知に富んだソリューションへの簡単なリンクを歓迎します。

0 投票する
2 に答える
1410 参照

javascript - 適切に劣化する HTML5 Range を構築するにはどうすればよいですか?

<input type='range' />HTML5 をサポートしているブラウザでは HTML5を使用し、そうでない場合は に劣化させたいと思います<select />。私はRuby-on-Railsを使用しているので、他のすべてに失敗した場合、サーバー側でこのようなことができます.

ただし、Javascript を介して行われるプログレッシブ エンハンスメントのアイデアと、より一致するものを用意したいと思います。JQueryの場合はボーナスポイント。

0 投票する
2 に答える
336 参照

javascript - Javascript フォーム ハンドラのバイパス

ASP.NET MVC アプリケーションを作成しています。デフォルトでは、クライアント ブラウザーに Javascript がある場合、ページ上のすべてのフォームのハンドラーは、Javascript によって、送信を Ajax "パイプ" (プログレッシブ エンハンスメント) に送信するハンドラーに設定されます。

しかし、1 つのフォーム (複数のページ) では、このハンドラーをバイパス/無視したいと思います。これを行う簡単な方法はありますか?おそらく、独自の onsubmit イベントを DOM で直接指定してハンドラーをオーバーライドするか、または他の方法で?

jQuery を使用しているため、これらのライブラリを利用できます。

0 投票する
7 に答える
20837 参照

javascript - プログレッシブエンハンスメントとグレースフルデグラデーションの違いは何ですか?

プログレッシブ エンハンスメントグレースフル デグラデーションの違いについて、私は混乱しています。私には、それらは同じもののように見えます。

この 2 つの違いと、どちらを使用するかについて説明していただけますか?

0 投票する
8 に答える
79464 参照

javascript - そのHTML5を検出するための最良の方法サポートされていません

ブラウザがHTML5タグをサポートしていない状況に対処する標準的な方法は、次の<canvas>ようなフォールバックコンテンツを埋め込むことです。

ただし、ページの残りの部分は同じままであるため、不適切または誤解を招く可能性があります。それに応じてページの残りの部分を表示できるように、キャンバスの非サポートを検出する方法が必要です。あなたは何をお勧めします?

0 投票する
4 に答える
13781 参照

javascript - 特定のJavaScriptイベントのサポートを検出していますか?

JavaScript hashchangeイベントを使用して、URLのフラグメント識別子の変更を監視することに興味があります。私はReallySimpleHistoryとこのためのjQueryプラグインを知っています。ただし、私の特定のプロジェクトでは、別のJSファイルのオーバーヘッドを追加する価値はないという結論に達しました。

代わりに私がやりたいのは、「プログレッシブエンハンスメント」ルートを取ることです。つまり、hashchangeイベントが訪問者のブラウザーでサポートされているかどうかをテストし、利用可能な場合はコア機能ではなく拡張機能として使用するコードを記述します。IE 8、Firefox 3.6、およびChrome 4.1.249はこれをサポートしており、これが私のサイトのトラフィックの約20%を占めています。

それで、ええと...ブラウザが特定のイベントをサポートしているかどうかをテストする方法はありますか?