ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript における IE 互換性の問題と解決策

JavaScript における IE 互換性の問題と解決策

不言
不言転載
2019-03-26 10:38:442145ブラウズ

この記事の内容は、JavaScript における IE の互換性の問題とその解決策に関するものです。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

IE ブラウザで発生する問題

1. 公開されたスクリプトのコードが実行できない

1. バグの背景:

iframe タグを使用する場合、子ページが子ページで作成したオブジェクト (配列、関数、正規表現などを含むすべてのオブジェクト) を親ページに渡すと、このバグが発生します。

2. バグの理由:

サブページが閉じられると、サブページ内で宣言および割り当てられたオブジェクトが解放されます。したがって、親ページ内のこのオブジェクトへのすべての参照操作により、この JS エラーが生成されます。

3. 解決策は 2 つあります:

まず、親ページですべてのオブジェクトを構築し、子ページでこのオブジェクトに文字列値を割り当てます。
2 番目に、サブページによって生成されるオブジェクトの数が可変の場合は、JSON.stringfy() を使用して、返されるオブジェクトを文字列に変換します。次に、親ページで JSON.parse() を使用してオブジェクトに変換します。

IE および Firefox ブラウザーでの JS new Date() の値は無効な日付、NaN-NaNです。

スクリーンショット情報

JavaScript における IE 互換性の問題と解決策

1. 問題の背景:
IE ブラウザでは、new Date("xxxx") メソッドを使用して日付文字列の文字列を特定の日付形式に変換すると、この問題が発生します。例:
new Date("2019-03-21 10:41:33") //[date] Invalid Date[date] Invalid Date
ただし、このメソッドは Google Chrome では正しい結果を返すことができます。

2. 問題の原因:

文字列の形式が IE ブラウザーで認識されないため、

3 が発生します。解決策:

new Date("2019/03/21 10:41:33") //[日付] 木 2019 年 3 月 21 日 10:41:33 GMT 0800 (中国標準時)[日付] 2019 年 3 月 21 日木 10:41 : 33 GMT 0800 (中国標準時)

注: 使用する場合、日付文字列形式を文字列変換を通じてブラウザでサポートされている形式に変換し、new Date() を使用できます。

var date = '2019-03-21 10:41:33';
date = date.replace(new RegExp(/-/gm) ,"/");   //将所有的'-'转为'/'即可
Date d=new Date(date);

4. 概要

ブラウザごとに違いがあり、すべてのブラウザでサポートされている方法を以下に示します。

var d = new Date(2019, 01, 07); // yyyy, mm-1, dd  
 var d = new Date(2019, 01, 07, 11, 05, 00); // yyyy, mm-1, dd, hh, mm, ss  
 var d = new Date("02/07/2019"); // "mm/dd/yyyy"  
var d = new Date("02/07/2019 11:05:00"); // "mm/dd/yyyy hh:mm:ss"  
var d = new Date(1297076700000); // milliseconds  
var d = new Date("Mon Feb 07 2019 11:05:00 GMT"); // ""Day Mon dd yyyy hh:mm:ss GMT/UTC

この記事はここで終了しています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの JavaScript ビデオ チュートリアル 列に注目してください。

以上がJavaScript における IE 互換性の問題と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。