私のAngularアプリでプロパティに気づいた
window.navigator.pointerEnabled
戻り値true
ここで、.net内のポインター イベントを含むいくつかのテストを行いたいのでjsfiddle
、これらのイベントが存在しないことに気付きました。これはおそらく、pointerEnabled
プロパティがであるという事実と関係がありますundefined
。
私の質問は、このプロパティはどのように制御されているのですか?どうすれば有効にできますか?
私のAngularアプリでプロパティに気づいた
window.navigator.pointerEnabled
戻り値true
ここで、.net内のポインター イベントを含むいくつかのテストを行いたいのでjsfiddle
、これらのイベントが存在しないことに気付きました。これはおそらく、pointerEnabled
プロパティがであるという事実と関係がありますundefined
。
私の質問は、このプロパティはどのように制御されているのですか?どうすれば有効にできますか?
Firefox でコードをテストしている場合は、ポインター イベントを有効にするようにブラウザーを構成する必要があります。ポインター イベントは現時点ではデフォルトで有効になっていないためです (2017.xi.15 時点での私の最新のアップグレードは Firefox Quantum 57.0.2 です)。 (64 ビット)、ここに投稿した内容は、後のバージョンで変更される可能性があります!)。
これを行うには、新しいタブを起動し、アドレス バーに「about:config」と入力する必要があります。次に、エントリを検索します。
dom.w3c_pointer_events.enabled
このブール値のステータスを true に変更します。
これを行わない限り、Firefox はまだポインター イベントをまったく処理しません。これは将来変更される可能性がありますが、現時点では、ブラウザー間の互換性に関心がある場合は、ポインター イベントの処理が地雷原になる可能性があることに注意してください。たとえば、私のマシンで実行されている Chrome の最新バージョン、つまりバージョン 63.0.3239.84 (公式ビルド) (64 ビット) は、ブラウザーに飛び込んで再構成する必要なくポインター イベントを処理しますが、Firefox では頭痛が尽きることがありませんでした。上記の構成の問題を発見しましたが、同様の問題は他のブラウザでも発生する可能性があります。
問題をさらに悪化させるのは、Windows バージョンの Firefox ではポインター イベントを有効にできることですが、ブラウザーの Android 版 Firefox Mobile ではまだサポートされていません。そのため、プラットフォームが変わると、同じブラウザーでも動作が異なる可能性が高く、コーディングの悪夢が増えるだけです。
私は Safari や Opera には詳しくありませんが、これらのブラウザーのユーザーは、ポインター イベントを使用するときに同様のサポートの問題が適用されるかどうかを確認することを強くお勧めします!
結果として、ポインター イベントをネイティブに処理しようとしているか、Angular などのフレームワークを介して処理しようとしているかは問題ではありません (ブラウザーが最初からポインター イベントを有効にしていない場合)。私はこの問題で数時間を無駄にしましたが、同じフラストレーションを他の人に与えないようにするのは良い考えだと思いました.
もちろん、これではエンド ユーザーがこれを知らないという問題や、ブラウザーを構成せずにアプリを実行しようとすると、システムでアプリが失敗するという問題は解決されません。または、さらに悪いことに、ブラウザーがポインター イベントをまったくサポートしていないために、アプリが失敗します (たとえば、上記で引用した Android 用の Firefox Mobile など)。エンド ユーザーは、ハードウェアやブラウザーの選択に関係なく、アプリがすぐに実行できることを期待していますが、これを実現するには、現在、交渉しなければならない厄介なハードルがあります。これらの 1 つは、タッチ イベントのサポートもFirefox の構成フラグの背後に隠されていることです。そのため、ポインター イベントがサポートされていない場合に別のタッチ イベントにフォールバックしても、アプリが失敗しないようにすることは保証できません。
現時点で、この点に関してプラットフォーム間で一定の一貫性を維持している唯一の主要なブラウザーは Chrome です。ポインタ イベントを使用して記述したコードは、Chrome を起動するとデスクトップ マシンとタブレットの両方で機能しますが、Firefox でコードを実行しようとすると、それだけで頭が痛くなることがわかりました。タブレット。
上記に加えて、他にも問題が潜んでいる可能性があります (特に、新しい CSS ポインター イベント機能も使用している場合)。