http://jsfiddle.net/bcg47/3/外部iframe導致javascript日期()發生故障
此錯誤只發生在新版本的Chrome中。它已在Chrome 29.0.1547.57版本的Mac和Windows版本29.0.1547.62版本的Chrome上進行了測試。
上面的腳本非常簡單。這裏是代碼:
<script>
function displayDate() {
console.log('date1', new Date('2013-08-30T14:06:56-04:00'))
setTimeout(function() { displayDate(); }, 1000);
}
displayDate();
</script>
<iframe src="http://jsfiddle.net/wzqgN/2/" width="100%" height="300"></iframe>
加載的第一件事是一個JavaScript函數和對該函數的調用。在函數中,我記錄了從javascript new Date()
構造函數(傳遞8月30日)返回的值。很簡單,就像你在控制檯中看到的那樣,這是第一次。加載iframe時會發生問題。 iframe的src爲http://jsfiddle.net/wzqgN/2/。在這個iframe jsfiddle中也沒有什麼特別的。它具有以下代碼:
TargetDate = "12/31/2020 5:00 AM";
var dthen = new Date(TargetDate);
正如你可以在控制檯中看到輸出的第一行是:
date1 Fri Aug 30 2013 14:06:56 GMT-0400 (EDT)
但只要在iframe裝載和其他new Date()
被調用,那麼輸出更改爲:
date1 Thu Dec 31 2020 05:00:00 GMT-0500 (EST)
我不確定這裏發生了什麼。我最初的想法是,這是一個瀏覽器錯誤,但我想在這裏問一下確認。在腳本中,我使用的iframe實際上設置爲與運行代碼不同的域。這就是讓我更想知道到底發生了什麼。我不理解iframe中的腳本,更不用說跨域腳本,它可以影響調用它的原始腳本。任何幫助是極大的讚賞。謝謝。