首頁  >  文章  >  web前端  >  JavaScript中IE相容出現的問題及解決方法

JavaScript中IE相容出現的問題及解決方法

不言
不言轉載
2019-03-26 10:38:442088瀏覽

這篇文章帶給大家的內容是關於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
但是這個方法卻在Google瀏覽器上可以傳回正確的結果。

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);

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影片教學專欄!

#

以上是JavaScript中IE相容出現的問題及解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除