>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 IE 호환성 문제와 해결 방법

JavaScript의 IE 호환성 문제와 해결 방법

不言
不言앞으로
2019-03-26 10:38:442210검색

이 기사는 JavaScript의 IE 호환성 문제와 해결 방법에 대한 내용을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

IE 브라우저 문제

1. 공개된 스크립트의 코드를 실행할 수 없습니다

1. 버그 발생 배경:

iframe 태그 사용 시 하위 페이지가 상위 페이지로 전달되는 경우 하위 페이지가 생성될 때 이 버그는 개체(배열, 함수, 정규식 등을 포함한 모든 개체)가 생성될 때 발생합니다.

2. 버그 원인:

하위 페이지가 닫히면 하위 페이지에서 선언하고 할당한 개체가 해제됩니다. 따라서 상위 페이지에서 이 개체에 대한 모든 참조 작업은 이 JS 오류를 생성합니다.

3. 두 가지 해결 방법이 있습니다.

먼저 상위 페이지에 모든 개체를 구축하고 하위 페이지에서 이 개체에 문자열 값을 할당합니다.
둘째, 하위 페이지에서 생성된 객체의 개수가 가변적인 경우 JSON.stringfy()를 사용하여 반환할 객체를 문자열로 변환합니다. 그런 다음 상위 페이지에서 JSON.parse()를 사용하여 객체로 변환합니다.

IE 및 Firefox 브라우저의 JS new Date() 값은 Invalid Date, NaN-NaN

Screenshot information

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" ) //[날짜] Thu Mar 21 2019 10:41:33 GMT+0800 (China Standard Time)[날짜] Thu Mar 21 2019 10:41:33 GMT+0800 (China Standard Time)

참고: 사용 시, 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 중국어 웹사이트의 JavaScript Video Tutorial 칼럼을 주목하세요!

위 내용은 JavaScript의 IE 호환성 문제와 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제