温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何解决JavaScript中IE兼容出现的问题

发布时间:2020-08-11 15:41:30 来源:亿速云 阅读:178 作者:小新 栏目:web开发

这篇文章主要介绍了如何解决JavaScript中IE兼容出现的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

在IE浏览器中出现的问题

1、不能执行已释放 Script 的代码

1、bug出现背景:

在使用iframe标签时,如果子页面向父页面传递在子页面创建的对象(所有对象,包括数组,函数,正则等)时,会出现这个bug。

2、bug出现原因:

在子页面关闭时,会释放掉在子页面中声明赋值的对象。所以在父页面所有对这个对象的引用操作都会产生这个JS错误。

3、解决方法有2种:

第一,在父页面把所有对象都建好,在子页面对这个对象进行字符串赋值。
第二,如果子页面产生的对象数量是不定的,使用JSON.stringfy()把要回传的对象变成字符串。然后在父页面中使用JSON.parse()变成对象。

IE、firefox浏览器下JS的new Date()的值为Invalid Date、NaN-NaN

截图信息

如何解决JavaScript中IE兼容出现的问题

1、问题出现背景:
在IE浏览器中,使用new Date("xxxx")方法,将一串日期字符串转换为具体的Date格式的时,会出现这个问题。如:
new Date("2019-03-21 10:41:33") //[date] Invalid Date[date] Invalid Date
但是这个方法却在谷歌浏览器上可以返回正确的结果。

2、问题出现原因:

字符串的格式不被IE浏览器识别,而导致的

3、解决方法:

new Date("2019/03/21 10:41:33") //[date] Thu Mar 21 2019 10:41:33 GMT+0800 (中国标准时间)[date] Thu Mar 21 2019 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);

不同的浏览器是存在差异的,以下列出了所有浏览器都支持的方式。

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

感谢你能够认真阅读完这篇文章,希望小编分享如何解决JavaScript中IE兼容出现的问题内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI