IPTV HD ページで、小さなウィンドウでビデオを再生すると、一部のセットトップ ボックス (HD ZTE、HD Daya 4904 など) でフォーカスが移動しません、つまりボタンが反応しません。私はこのバグに長い間悩まされてきましたが、解決策はわかっているだけで、原因はわかりません。今日実験を行ったところ、結果は次のように分析されました:
ページがビデオ再生メソッドを呼び出すとき、コードによって行われる実際の作業は、ビデオ ID、ビデオ ウィンドウの位置、ビデオ ウィンドウなどのパラメータを結合することであることがわかります。ビデオを再生する iframe の src については、再生コントロールが現在のページで実行されます (もちろん、これが当てはまると思います)。このコントロールは IPTV セットトップ ボックスでのみサポートされており、ビデオを再生するコードによって作成されたオブジェクトを PC ブラウザが認識しないため、PC 側でエラーが報告されます)、その場合、iframe はフォーカス状態になります。つまり、ページの現在のフォーカスはこの iframe にあります。リモコンを操作してフォーカスを移動しても、ZTE および Daya 4904 HD セットトップ ボックスではフォーカスが移動しません。
その理由は、iframe によって取得されたフォーカスが削除されていないか、そのフォーカスをページの他の要素に転送できないため、リモコンの方向キーを押してもページが応答しなくなります。
さて、この結論を証明しましょう。
HTML ページでは、a、img、input、および href または src 属性を持つその他のタグなど、多くの要素がフォーカスを取得したり失ったりする可能性があります。高解像度ページでは、要素のフォーカス (ここでは実際に使用する div タグを指します) は HTML ページのフォーカスではなく、JavaScript を通じてその CSS スタイルを変更して、現在の位置をマークします。これは、ページ上の操作対象のオブジェクトの位置をユーザー (実際の操作者) に伝えるために使用される外観であり、上記のラベル () によって取得されるフォーカスとは異なります。赤マーク)。フォーカス可能な要素は、.focus メソッドを使用して BOM 内のフォーカスを取得できます。一部のブラウザでは、フォーカスされた要素の周囲に点線のボックスが表示されます。このとき、キーボードの Tab キーを押すとフォーカスを切り替えることができます。
つまり、ビデオの再生に使用される iframe によって取得されるフォーカスは、IPTV ページで説明されているフォーカスと同じではありません。前者は HTML ページの実際の焦点であり、後者はマーク、つまりページ (最終的にはテレビ) 上での位置決めに使用される視覚的なマークです。実際には、この切り替えは JavaScript を通じて CSS スタイルを変更することで行われ、その結果、色の大きな変化。操作対象のオブジェクトの現在位置をユーザーに知らせるために使用される視覚効果。
このフォーカスはそのフォーカスではないため、フォーカスが切り替わったとき、つまりフォーカス喪失またはフォーカスイベントが発生したとき、ページ要素は異なる方法で処理されます。ページ上の実際のフォーカスは、それを受け入れることができる要素、つまり、href または src 属性を持つタグにのみ切り替えることができます。これらの要素がページ上に存在しない場合、またはこれらの要素が遠くにある場合、フォーカスは切り替わりません。通常通り切り替わり、元の位置に留まります。このとき、ページはフォーカスロック状態になります(ご自身で推測してください)。
理由がわかったので、元の問題を解決する方法を見つけました。
これは 2 つの方法で解決できます:
方法 1. 追加されたタグがページの美しさに影響を与えるのを防ぐために、実際のフォーカスを受け入れることができる要素 (a、img、input など) をページに追加します。ページの幅と高さを変更できます。これを 0 に設定すると、ページ上で非表示にすることと同じになります。非表示であっても、実際にはページ上に存在することに注意してください。もちろん、実際の焦点を置くことに消極的な要素の近くに、ここで実際の焦点を受け入れるためのラベルを追加するのが最善です。焦点を当てるには、電車のチケットを購入する必要があります。彼らは毛織物を喜んでいると思いますか?もちろん、一部のブラウザー (これは実際には高解像度のセットトップ ボックス) では、実際のフォーカスを持つ要素 (つまり、ビデオの再生に使用される iframe) は、現時点ではより寛大なものになります。何千マイルものことに集中するために、自分のポケットからチケットを購入してください。
方法 2: 実際のフォーカスを持つ要素の近くの要素を、ページの実際のフォーカスを受け入れることができる要素に変更します。ここで述べられていることは少しわかりにくいです。たとえば、iframe のフォーカスをその近くの div に移動したい場合は、この div をページの実際のフォーカスを受け入れることができる要素に設定できます。設定方法は? tabIndex 属性を div に追加できます。この属性の値は 1 ~ 32767 の任意の値です。この時点で、div は TAB キーのシーケンスに追加されます。
ここでは、tabIndex 属性が設定された要素間でフォーカスを移動するためのルールを簡単に紹介します。閲覧者が Tab キーを使用してページ上のフォーカスを移動すると、フォーカスは最初に tabIndex 属性値が最も小さい要素に移動します。最後に、最大の tabIndex 属性を持つ要素に移動し、最後に value 要素に移動します。同じ tabIndex 属性を持つ 2 つの要素がある場合、HTML コード内での要素の出現順序が優先されます。デフォルトの tabIndex 属性は 0 で、指定された tabIndex を持つすべての要素の後に配置されます。したがって、上記の 2 番目の方法では、div の tabIndex 属性値を 0 ではなく 1 に設定するのが最善です。また、tabIndex 属性が負の値 (tabIndex="-1" など) に設定されている場合、この要素は TAB キーのシーケンスから除外されます。
ここで、私たちが解決したかった元の問題に戻ります。
上記の方法 1 では、HD ZTE および HD Daiya 4904 セットトップ ボックスで a タグを使用することが可能です。この処理の後、他の HD セットでも使用できます。フォーカスを正常に移動できるトップボックスはサポートされていない影響はありません。 img タグと input タグはテストしていませんが、機能すると信じています。
2番目の方法については、HD ZTEとHD Daya 4904セットトップボックスをテストして、それが実現可能であることがわかり、私のアイデアを検証しましたが、HDセットトップボックスが動かせるかどうかはテストしませんでした。この方法では異常な問題が発生するため、通常はフォーカスが表示されます。ここでの現象の 1 つは、div に tabIndex 属性を設定した後、セットトップ ボックスの div の周囲にフォーカス ボックスが表示されることです。これは通常の現象ですが、もちろん十分に美しいとは言えません。このフォーカス ボックスを削除する方法については説明しません。
ちなみにこのフォーカス枠と言えば、フォーカスを獲得した後に要素に点線の枠が付くのですが、それをわざわざ消す人がいつもいます。実際、これは間違いなくページの使いやすさを踏みにじるものです。また、マウスを使用しない専門家、マウスが壊れた貧しい人々、視覚障害を持つ人々など、特定の特殊なグループのニーズも考慮する必要があります。 。記事によると、米国では点線のボックスを削除することは違法だそうです。これは視覚障害者に対する差別です。ここから、米国が人権を尊重していることがわかります。これは、結局のところ、ユーザー エクスペリエンスと人間性への配慮に基づいています。そうは言っても、セットトップボックスの性能を議論しているので、フォーカスボックスは外した方が良いのですが、アメリカの姿勢は学ぶべきものです。
最後に、ページのフォーカスが a タグによって受け入れられるとき、a タグは、Tab キーと同様に、フォーカスを移動するためのリモコンの方向キーをサポートしているためです (a タグを使用して受け入れるすべての SD ページなど)フォーカス)、小さなウィンドウでビデオを再生すると、フォーカスを移動できない問題が発生します。これも上記の結論を証明します。
ここで問題が残っています。つまり、ビデオの再生に使用される iframe が tabIndex="-1" に設定されている場合、ページのフォーカスは移動できなくなりますか?時間の都合上、テストは行っておりません。
客観的な分析や検証をせずに急いで書いたので、どうしても偏った意見が含まれます。

強力な機能と優れたユーザーエクスペリエンスを備えたWebサイトを構築するには、HTMLだけでは十分ではありません。次のテクノロジーも必要です。JavaScriptは、Webページに動的とインタラクティブ性を与え、リアルタイムの変更がDOMを操作することで達成されます。 CSSは、美学とユーザーエクスペリエンスを向上させるために、Webページのスタイルとレイアウトを担当しています。 React、Vue.JS、Angularなどの最新のフレームワークとライブラリは、開発効率とコード組織構造を改善します。

ブール属性は、値なしでアクティブ化されるHTMLの特別な属性です。 1.ブール属性は、無効化された入力ボックスを無効にするなど、存在するかどうかによって、要素の動作を制御します。 2.彼らの実用的な原則は、ブラウザが異なっているときに属性の存在に応じて要素の動作を変更することです。 3.基本的な使用法は、属性を直接追加することであり、高度な使用法はJavaScriptを介して動的に制御できます。 4.一般的な間違いは、値を設定する必要があると誤って考えており、正しい執筆方法は簡潔にする必要があります。 5.ベストプラクティスは、コードを簡潔に保ち、ブールのプロパティを合理的に使用して、Webページのパフォーマンスとユーザーエクスペリエンスを最適化することです。

HTMLコードは、オンラインバリデーター、統合ツール、自動化されたプロセスを使用するとクリーンになります。 1)w3cmarkupvalidationserviceを使用して、HTMLコードをオンラインで確認します。 2)リアルタイム検証のためにVisualStudiocodeにhtmlhint拡張機能をインストールして構成します。 3)HTMLTIDYを使用して、建設プロセスでHTMLファイルを自動的に検証およびクリーニングします。

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









