ホームページ ウェブフロントエンド jsチュートリアル js で発生しやすい互換性とエラーが発生しやすい問題

js で発生しやすい互換性とエラーが発生しやすい問題

Jun 20, 2018 pm 02:55 PM
js 互換性

以下のエディターが、js の互換性とエラーが発生しやすい問題をまとめた記事を共有します。これは非常に参考になるので、皆さんのお役に立てれば幸いです。エディターをフォローして一緒に見てみましょう

1. 属性関連

通常、属性とプロパティは属性として参照されますが、実際には異なる概念です。

特徴 HTML テキストに表示されます。特性は要素のアウター HTML に必ず表示され、特性は要素ノードにのみ存在します。

属性 (プロパティ) は、ブラウザーに組み込まれている一部の機能を除き、他の属性操作には影響しません。 HTML テキスト。

1. IE6/7 は属性と特性を区別しません

他のブラウザーは属性と特性を区別しますが、IE67 では属性を削除するために属性名のみを使用できますが、これら 2 つは区別されません。名前は同じであることがよくありますが、必ず違いがあります。

2. IE6/7 では、getAttribute/setAttribute を使用して、値が文字列ではない機能を操作することはできません

最新のブラウザでは、getAttribute は HTML 内の対応する文字列を確実に返し、IE67 によって返される結果は予測不可能です。 IE67では属性を操作するためにAttributeNodeを使用する必要があります。

3. IE6/7/8 は style 属性を通じて CSS テキストを取得できません

この問題は、IE6/7 が属性と特性を区別していないために発生するはずです。style 属性を取得する場合は、elem.style.cssText を使用してください。 。

4. IE6/7 は相対 URL を絶対 URL に解析します

この問題により、IE6/7 では空の src 属性が繰り返しリクエストを生成することもあります。getAttribute('href/src', 4) を使用できます。

5. 要素の特性のデフォルトの動作が異なります

たとえば、一部の古い Webkit ブラウザでは、チェックボックス/ラジオのデフォルト値がオンではなく、「」になっています。一部の古い Webkit ブラウザでは、select の最初の要素が選択されません。

2. スタイル操作

通常、スタイルには、インラインスタイルの取得と設定、要素の計算されたスタイルの取得が含まれます

1。ただし、他のブラウザはサポートしません

background-position-x/y を使用すると、画像の位置を簡単にグラデーションできます。これがサポートされていない場合は、背景位置属性の解析を使用して処理することを検討できます。

2. IE6/7 は不透明度属性をサポートしません

アルファフィルターを通じて同じ効果を実現できますが、要素の haslayout をトリガーすることを忘れないでください。

3. IE6/7/8 は、クローンによって生成されたノードに誤って一部の属性を継承させます

たとえば、背景を 1 つまたは 2 つ変更すると、それらも同時に変更されます。

4. 計算されたスタイルを取得するさまざまな方法

IE6/7/8 は elem.currentStyle を使用しますが、他のブラウザーは window.getComputedStyle 関数を使用します。

5. さまざまなピクセル化方法

ピクセル化とは、計算を容易にするために、単位がピクセルではない距離をピクセルに変換することを指します。厳密に言えば、これは互換性の問題ではありませんが、全般的に使用される可能性があります。 IE6/7/8では、elem.runtimeStyleをpixelLeftとともに使用して処理できます。

最新のブラウザでは width 属性を使用できます。

6. CSS を取得する際のいくつかのバグ動作

Webkti コア ブラウザでは、margin-right が頻繁に失敗します。

3. クエリ操作

クエリの受け渡しとは、いくつかの特徴的な文字列から要素の集合を見つけたり、要素が文字列を満たすかどうかを判断したりすることを指します。

1. IE6/7はIDと名前を区別しません

IE6/7でgetElementByIdとgetElementsByNameを使用すると、指定された値と同じIDまたは名前を持つ要素が同時に返されます。通常、名前はバックエンドによって合意されるため、JS を作成するときは、ID が名前と重複しないようにする必要があります。

2. IE6/7 は getElementsByClassName と querySelectorAll をサポートしていません

これら 2 つの関数は IE8 からサポートされるため、IE6/7 では実際には getElementByTagName のみを使用できます。

3. IE6/7 は getElementsByTagName('*') をサポートしていないため、非要素ノードを返します

* を使用しないか、自分でフィルターする関数を作成してください。

4. IE8 の querySelectorAll は属性セレクターに適していません

ほとんどすべてのブラウザーの事前定義属性には問題があるため、カスタム属性を使用するか、属性セレクターを使用しないようにしてください。

5. querySelectorAll は IE8 では疑似クラスをサポートしません

疑似クラスは非常に便利な場合もありますが、IE8 では、first、:last、:even、:odd、:eq、: がサポートされません。 nth、:lt、:gt は疑似クラスではないため、いかなる場合も使用すべきではありません。

6. IE9のmatches関数は、DOMツリー上にない要素を扱うことはできません

要素がDOMツリー上にない限り、それは間違いなくfalseを返します。それが不可能な場合は、単にもちろん、リフローを避けるために独自のマッチング関数を作成することもできます。

4.イベント運営

通常、JS の互換性について尋ねられると、最初の反応はattachEvent と addEventListener ですが、これら 2 つの関数の違いについてはまだ詳細が不明です。

1. イベントアクションオブジェクトは異なります

addEventListener はイベントがバブルアップされる現在のオブジェクトですが、attachEvent はウィンドウです。

。イベント パラメーター オブジェクトは異なります

attachEvent にバインドされた関数にはパラメーター e が含まれることに注意してください。ただし、ボタンなど、2 つのパラメーターの属性には多くの違いがあります。またはサポートページYなどはサポートされていません。

2. 邪悪なホイール イベント

ホイール イベントのサポートはめちゃくちゃです。ルールは次のとおりです:
IE6-11 chrome マウスホイール WheelDetla down-120 up 120

firefox DOMMouse詳細を下に 3 上にスクロール

Firefox ホイール detlaY ダウン 3 アップ - 3

IE9-11 ホイール デルタ Y ダウン 40 アップ -40

クローム ホイール デルタ Y ダウン 100 アップ -100

3. すべてのブラウザーのフォーカス/ブラー幸いなことに、ほとんどのブラウザは focusin/focusout イベントをサポートしていますが、Firefox はこれさえサポートしていません。

IE678 では送信イベントがバブルアップしません。

IE678 では、変更イベントはブラーされるまでトリガーされません。

そして、これら 3 つの問題を解決する有効な手段はなく、シミュレーションをトリガーすることによってのみ対処できます。

4. a.click()

このメソッドは、デフォルトの動作がブロックされていても、多くのブラウザでは安全ではありません。

5. ノード操作

ノード操作とは通常、ノードのコピー、生成、またはノードの位置の移動を指します。

1.. innerHTML

IE6/7/8 で innerHTML を使用する場合、先頭にテキスト ノードがなければなりません。そうしないと、多くのタグが失われます。さらに、多くの場合、innerHTML を使用すると、defaultValue 属性でエラーが発生します。

2. 役に立たない tbody

IE6/7/8 は、空の tbody を空のテーブルに自動的に追加します

3. cloneNode が、バインディング イベントを記録する場合を除き、それ以外の場合は、それらを解くことはできないだろう。

上記は私があなたのためにまとめたものです。 関連記事:

Vue.js で再帰コンポーネントを使用してツリー メニューを構築する方法

PHP で JSONAPI を使用する方法

Parcel.js + Vue 2.x で非常に高速にゼロを実現する方法設定のパッケージ化

Vue使用時にブラウザが戻るとbeforeRouteLeaveがトリガーできない問題

fastclickコードの「クリックスルー」タップを解決する方法

以上がjs で発生しやすい互換性とエラーが発生しやすい問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Bluetooth 5.3 と 5.2 バージョンの比較と差異分析 Bluetooth 5.3 と 5.2 バージョンの比較と差異分析 Dec 28, 2023 pm 06:08 PM

現在、多くの携帯電話が Bluetooth バージョン 5.3 をサポートしていると主張していますが、Bluetooth 5.3 と 5.2 の違いは何ですか? 実際、これらは基本的に Bluetooth 5 のその後の更新バージョンであり、ほとんどの性能と機能に大きな違いはありません。 Bluetooth 5.3 と 5.2 の違い: 1. データ レート 1 と 5.3 は、最大 2Mbps のより高いデータ レートをサポートできます。 2. 5.2 は最大 1Mbps しか到達できませんが、5.3 はより高速かつ安定してデータを送信できることを意味します。 2. 暗号化制御の強化 2. Bluetooth 5.3 では、暗号化キーの長さの制御オプションが向上し、セキュリティが向上し、アクセス制御やその他のデバイスへの接続が向上します。 3. 同時に、管理者の制御がよりシンプルになるため、5.2 では不可能だった接続がより便利かつ高速になります。

i7-7700 が Windows 11 にアップグレードできない場合の解決策 i7-7700 が Windows 11 にアップグレードできない場合の解決策 Dec 26, 2023 pm 06:52 PM

i77700 のパフォーマンスは win11 を実行するのに完全に十分ですが、ユーザーは i77700 を win11 にアップグレードできないことがわかります。これは主に Microsoft によって課された制限が原因であるため、この制限をスキップする限りインストールできます。 i77700 は win11 にアップグレードできません: 1. Microsoft が CPU バージョンを制限しているためです。 2. win11 に直接アップグレードできるのは、Intel の第 8 世代以降のバージョンのみです 3. i77700 は第 7 世代として、win11 のアップグレードのニーズを満たすことができません。 4. ただし、i77700はパフォーマンス的にはwin11を快適に使用するのに完全に可能です。 5. したがって、このサイトの win11 直接インストール システムを使用できます。 6. ダウンロードが完了したら、ファイルを右クリックして「ロード」します。 7. ダブルクリックして「ワンクリック」を実行します。

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

Go 言語は Linux システム上でどの程度互換性がありますか? Go 言語は Linux システム上でどの程度互換性がありますか? Mar 22, 2024 am 10:36 AM

Go 言語は Linux システムとの互換性が非常に優れており、さまざまな Linux ディストリビューション上でシームレスに実行でき、さまざまなアーキテクチャのプロセッサをサポートします。この記事では、Linux システムにおける Go 言語の互換性を紹介し、具体的なコード例を通じてその強力な適用性を示します。 1. Go 言語環境をインストールする Linux システムへの Go 言語環境のインストールは非常に簡単で、対応する Go バイナリ パッケージをダウンロードし、関連する環境変数を設定するだけです。 Ubuntu システムに Go 言語をインストールする手順は次のとおりです。

機内モードで Bluetooth ヘッドフォンを使用できますか? 機内モードで Bluetooth ヘッドフォンを使用できますか? Feb 19, 2024 pm 10:56 PM

現代技術の継続的な発展により、ワイヤレス Bluetooth ヘッドセットは人々の日常生活に欠かせないものになりました。ワイヤレスヘッドホンの登場により両手が解放され、音楽や通話などのエンターテインメントをより自由に楽しめるようになりました。ただし、飛行機に乗るときは、携帯電話を機内モードにするように求められることがよくあります。そこで質問は、機内モードで Bluetooth ヘッドフォンを使用できるかということです。この記事では、この疑問について考察していきます。まず、機内モードの機能と意味を理解しましょう。機内モードは携帯電話の特別なモードです

win10 ソフトウェアとの win11 互換性の問題の詳細な説明 win10 ソフトウェアとの win11 互換性の問題の詳細な説明 Jan 05, 2024 am 11:18 AM

win10システムのソフトウェアは完璧に最適化されていますが、最新のwin11ユーザーにとって、このシステムがサポートされるかどうかは誰もが気になるはずですので、以下ではwin10をサポートしていないwin11ソフトウェアについて詳しく紹介します。一緒に出かけます。 win11 は win10 ソフトウェアをサポートしていますか: 1. Win10 システム ソフトウェア、さらには Win7 システム アプリケーションにも十分な互換性があります。 2. Win11 システムを使用する専門家からのフィードバックによると、現時点ではアプリケーションの非互換性の問題はありません。 3. したがって、自信を持って大胆にアップグレードできますが、一般ユーザーは、Win11 の正式バージョンがリリースされるまでアップグレードする前に待つことをお勧めします。 4. Win11 は互換性が良いだけでなく、Windo も備えています

WIN10の互換性が失われた、それを回復する手順 WIN10の互換性が失われた、それを回復する手順 Mar 27, 2024 am 11:36 AM

1. プログラムを右クリックし、開いたプロパティウィンドウに [互換性] タブがないことを確認します。 2. Win10 デスクトップで、デスクトップ左下のスタートボタンを右クリックし、ポップアップメニューの[ファイル名を指定して実行]を選択します。 3. Win10 の実行ウィンドウが開きます。ウィンドウに「gpedit.msc」と入力し、[OK] ボタンをクリックします。 4. [ローカル グループ ポリシー エディター] ウィンドウが開くので、[コンピューターの構成/管理用テンプレート/Windows コンポーネント] メニュー項目をクリックします。 5. 開いた Windows コンポーネント メニューで [アプリケーション互換性] メニュー項目を見つけ、右側のウィンドウで [プログラム互換性プロパティ ページの削除] 設定項目を見つけます。 6. 設定項目を右クリックし、ポップアップメニューで

jsとvueの関係 jsとvueの関係 Mar 11, 2024 pm 05:21 PM

js と vue の関係: 1. Web 開発の基礎としての JS、2. フロントエンド フレームワークとしての Vue.js の台頭、3. JS と Vue の補完関係、4. JS と Vue の実用化ビュー。

See all articles